System and method for data detection in wireless communication systems

ABSTRACT

A system and method for data detection in a wireless communication system wherein the system comprises a receiver for receiving spatial-subspace data transmitted over a plurality of spatial-subspace channels of a sub-carrier which may comprise at least one of coded and uncoded spatial-subspace channels. The receiver comprises a receiver weighting unit for providing receive-weighed spatial-subspace data and a data estimation unit for performing an iterative processing method on the receive-weighted spatial-subspace data to estimate output data related to the input data symbol stream. The-iterative processing method comprises successively processing data on each of the plurality of spatial-subspace channels in the receive-weighted spatial-subspace data.

REFERENCE TO RELATED APPLICATION

[0001] This application claims priority from U.S. Provisional PatentApplication Serial No. 60/382,581 filed May 24, 2002.

FIELD OF THE INVENTION

[0002] The invention relates to a system and method for wirelesscommunication and more particularly, this invention relates to a systemand method for adaptive channel separation in a wireless communicationsystem.

BACKGROUND OF THE INVENTION

[0003] Modern wireless communication systems are designed to providereliable communication at the highest possible bit rate for a givenenvironment. However, there is still a pressing and persistent need forincreasingly higher data speed and bandwidth. The available bit rate foran application depends on a number of different parameters such as:available bandwidth, total radiated power at the transmitter,characteristics of the propagation environment, and cost ofimplementation as well as other factors.

[0004] There are several approaches for increasing the bit rate giventhe above constraints. One of these approaches involves the use ofMultiple Input Multiple Output (MIMO) systems which comprise multipleantennas at both the transmitter and the receiver. A MIMO systemprovides an opportunity to exploit spatial channel diversity therebyincreasing the spectral efficiency and error performance of a wirelesscommunication system. Space-time coding may also be used to distinguishthe signals that are sent by the various transmitter antennas as well asto increase the robustness of the MIMO system to errors caused by noiseand the multi-path phenomenon.

[0005] Another approach for increasing bit rate is to simultaneouslytransmit information on a plurality of independent frequencies that areorthogonal to one another. This technique is known as OrthogonalFrequency Division Multiplexing (OFDM) in which there are a plurality ofsub-carriers that are narrowband and orthogonal to each other. Eachsub-carrier carries a data symbol and the sub-carriers are transmittedsimultaneously in large numbers to achieve a high overall data rate.OFDM is an effective transmission modulation scheme for combating theadverse effects of noise sources and in particular multipath fading.OFDM is typically implemented using the Fast Fourier Transform (FFT)which is a well-known process for transforming a non-orthogonal signalinto a plurality of orthogonal components (i.e. sub-carriers).

[0006] Another approach for increasing the throughput of the MIMO systemis to decompose the multiple channels into several independent channelsthrough the use of Singular Value Decomposition (SVD). The SVD of thechannel matrix (which defines the interaction of each transmitterantenna with each receiver antenna) can be used to decompose a MIMOsystem having M transmitter antennas (i.e. M inputs) and N receiverantennas (i.e. N outputs) into p-one dimensional channels (where p<M andp<N). The channel matrix (i.e. the matrix H) has M rows and N columnsand is estimated at the initial-setup of the MIMO system by usingtraining symbols as is well known to those skilled in the art. The SVDof the channel matrix H is calculated to obtain a triplet of matrices(U, Λ and V*) where * represents the complex conjugate transpose. Thematrix Λ is the singular value matrix which represents the independentchannels. The matrix V is used to weight the data that is transmitted bythe transmitter antennas and the matrix U* is used to weight the datathat is received by the receiver antennas. Accordingly, either thechannel matrix H or the matrix V must be sent to the transmitter.Furthermore, the channel matrix H is updated on a periodic orintermittent basis during regular data transmission since the channelwill vary during the operation of the MIMO system (i.e. the channel isconsidered to be quasi-static). Accordingly, the U, Λ and V* matricesvary during the operation of the MIMO system.

[0007] Another approach for increasing throughput is a MIMO system whichcombines OFDM and SVD. In this case, the MIMO system comprises aplurality of sub-carriers which each have an associated channel matrix(H_(k) for a sub-carrier k). The SVD is calculated for each of thechannel matrices H_(k) and the channel matrix H_(k)or the V_(k) matrixis transmitted to the transmitter for each of the sub-carriers. Forexemplary purposes, given a MIMO system with 8 transmitter antennas and8 receiver antennas, the channel matrix H_(k) is an 8×8 matrix. Assuming16 bits are used to encode a real number and 16 bits are used tocalculate an imaginary number, an 8×8 channel matrix H_(k) (which ingeneral contains complex numbers) requires 8×8×(16+16)=2048 bits ofdata. With an OFDM system which uses 768 carriers, there will be 768channel matrices which requires 768*2048=1.5 Mbits of data. Further,assuming that each channel matrix H_(k) is updated every millisecond,then the data rate required simply for sending each channel matrix H_(k)to the transmitter is 1 GHz which is excessive.

[0008] As discussed, instead of sending the channel matrices H_(k) tothe transmitter, the V_(k) weight matrices may be sent. The row size ofeach V_(k) matrix is equal to the number of receiver antennas and thecolumn size of each V_(k) matrix is equal to the number of useablesubspaces that result from the singular value decomposition of thecorresponding channel matrix H_(k). Assuming that there are four useablesubspaces, 16 bits are used to encode a real number and 16 bits are usedto encode an imaginary number, an 8×4 V_(k)matrix (which containscomplex numbers) requires 8×4×(16+16)=1024 bits of data. Once again,assuming an OFDM system which uses 768 carriers, there will be 768 V_(k)matrices which requires 768*1024=0.78 Mbits of data. This translates toa data rate of 0.8 GHz assuming that each V_(k) matrix is updated everymillisecond.

[0009] Accordingly, a MIMO system which incorporates both OFDM and SVDrequires a large data rate for providing channel information to thetransmitter. This issue is more pronounced if frequency divisionduplexing is also used. In addition, the SVD operation is an iterativealgorithm which is computationally intensive and must be performed foreach channel matrix H_(k), every millisecond. Both of these operationsin their present form are computationally intensive and are not suitablefor an efficient SVD-based MIMO system.

SUMMARY OF THE INVENTION

[0010] In a first aspect, the present invention provides a communicationsystem for transmitting an input data symbol stream over a plurality ofspatial-subspace channels of a sub-carrier between a transmitter and areceiver. The transmitter comprises an encoder unit for processing aplurality of input data symbol sub-streams for providing a plurality ofuncoded/coded input data symbol sub-streams comprising at least oneof: 1) at least one uncoded input data symbol sub-stream for allocationon a corresponding at least one uncoded spatial-subspace channel of theplurality of spatial-subspace channels and 2) at least two coded inputdata symbol sub-streams for allocation on a corresponding at least twocoded spatial-subspace channels of the plurality of spatial-subspacechannels. The plurality of input data symbol sub-streams are derivedfrom the input data symbol stream. The transmitter further comprises atransmitter weighting unit connected to the encoder unit for weightingthe plurality of uncoded/coded input data symbol sub-streams with atransmit weight matrix corresponding to the sub-carrier for distributingthe plurality of uncoded/coded input data symbol sub-streams along theplurality of spatial-subspace channels and providing transmit-weightedspatial-subspace data. The receiver comprises a receiver weighting unitfor receiving spatial-subspace data related to the transmit-weightedspatial-subspace data and weighting the spatial-subspace data with areceive weight matrix for providing receive-weighted spatial-subspacedata. The receiver also comprises a data estimation unit connected tothe receiver weighting unit for receiving and performing an iterativeprocessing method on the receive-weighted spatial-subspace data toestimate output data related to the input data symbol stream, theiterative processing method comprising successively processing data oneach of the plurality of spatial-subspace channels in thereceive-weighted spatial-subspace data.

[0011] In a second aspect, the present invention provides a method fortransmitting an input data symbol stream over a plurality ofspatial-subspace channels of a sub-carrier between a transmitter and areceiver. At the transmitter the method comprises:

[0012] a) processing a plurality of input data symbol sub-streams forproviding a plurality of uncoded/coded input data symbol sub-streamscomprising at least one of: 1) at least one uncoded input data symbolsub-stream for allocation on a corresponding at least one uncodedspatial-subspace channel of the plurality of spatial-subspace channelsand 2) at least two coded input data symbol sub-streams for allocationon a corresponding at least two coded spatial-subspace channels of theplurality of spatial-subspace channels, the plurality of input datasymbol sub-streams being derived from the input data symbol stream; and,

[0013] b) weighting the plurality of uncoded/coded input data symbolsub-streams with a transmit weight matrix corresponding to thesub-carrier for distributing the plurality of uncoded/coded input datasymbol sub-streams along the plurality of spatial-subspace channels andproviding transmit-weighted spatial-subspace data;

[0014] At the receiver the method further comprises:

[0015] c) receiving spatial-subspace data related to thetransmit-weighted spatial-subspace data and weighting thespatial-subspace data with a receive weight matrix for providingreceive-weighted spatial-subspace data; and, d) performing an iterativeprocessing method on the receive-weighted spatial-subspace data toestimate output data related to the input data symbol stream, theiterative processing method comprising successively processing data oneach of the plurality of spatial-subspace channels in thereceive-weighted spatial-subspace data.

[0016] In another aspect, the present invention provides a receiver forreceiving spatial-subspace data transmitted over a plurality ofspatial-subspace channels of a sub-carrier. The spatial-subspace datacomprises a plurality of uncoded/coded data symbol sub-streamscomprising at least one of: 1) at least one uncoded input data symbolsub-stream for allocation on a corresponding at least one uncodedspatial-subspace channel of the plurality of spatial-subspace channelsand 2) at least two coded input data symbol sub-streams for allocationon a corresponding at least two coded spatial-subspace channels of theplurality of spatial-subspace channels. The receiver comprises areceiver weighting unit for weighting the spatial-subspace data with areceive weight matrix for providing receive-weighted spatial-subspacedata; and, a data estimation unit connected to the receiver weightingunit for receiving and performing an iterative processing method on thereceive-weighted spatial-subspace data to estimate output data relatedto the input data symbol stream. The iterative processing methodcomprises successively processing data on each of the plurality ofspatial-subspace channels in the receive-weighted spatial-subspace data.

[0017] In yet another aspect, the present invention provides a methodfor receiving spatial-subspace data transmitted over a plurality ofspatial-subspace channels of a sub-carrier. The spatial-subspace datacomprises a plurality of uncoded/coded data symbol sub-streamscomprising at least one of: 1) at least one uncoded input data symbolsub-stream for allocation on a corresponding at least one uncodedspatial-subspace channel of the plurality of spatial-subspace channelsand 2) at least two coded input data symbol sub-streams for allocationon a corresponding at least two coded spatial-subspace channels of theplurality of spatial-subspace channels. The method comprises:

[0018] a) weighting the spatial-subspace data with a receive weightmatrix for providing receive-weighted spatial-subspace data; and,

[0019] b) performing an iterative processing method on thereceive-weighted spatial-subspace data to estimate output data relatedto the input data symbol stream, the iterative processing methodcomprising successively processing data on each of the plurality ofspatial-subspace channels in the receive-weighted spatial-subspace data.

[0020] In yet another aspect, the present invention provides acommunication system for transmitting input data over a plurality ofspatial-subspace channels of a sub-carrier between a transmitter and areceiver. The transmitter comprises an encoder unit for processing aplurality of input data symbol sub-streams for providing a plurality ofuncoded/coded input data symbol sub-streams comprising at least oneof: 1) at least one uncoded input data symbol sub-stream for allocationon a corresponding at least one uncoded spatial-subspace channel of theplurality of spatial-subspace channels and 2) at least two coded inputdata symbol sub-streams for allocation on a corresponding at least twocoded spatial-subspace channels of the plurality of spatial-subspacechannels. The transmitter transmits data related to the plurality ofuncoded/coded input data symbol sub-streams. The receiver comprises adata estimation unit for performing an iterative processing method onreceived spatial-subspace data to estimate output data related to theinput data. The iterative processing method comprises successivelyprocessing data on each of the plurality of spatial-subspace channels inthe received spatial-subspace data.

[0021] In another aspect, the present invention provides a method fortransmitting input data over a plurality of spatial-subspace channels ofa sub-carrier between a transmitter and a receiver. At the transmitterthe method comprises: a) processing a plurality of input data symbolsub-streams for providing a plurality of uncoded/coded input data symbolsub-streams comprising at least one of: 1) at least one uncoded inputdata symbol sub-stream for allocation on a corresponding at least oneuncoded spatial-subspace channel of the plurality of spatial-subspacechannels and 2) at least two coded input data symbol sub-streams forallocation on a corresponding at least two coded spatial-subspacechannels of the plurality of spatial-subspace channels, and transmittingdata related to the plurality of uncoded/coded input data symbolsub-streams. At the receiver the method further comprises: b) performingan iterative processing method on received spatial-subspace data toestimate output data related to the input data, the iterative processingmethod comprising successively processing data on each of the pluralityof spatial-subspace channels in the received spatial-subspace data.

BRIEF DESCRIPTION OF THE DRAWINGS

[0022] For a better understanding of the present invention and to showmore clearly how it may be carried into effect, reference will now bemade, by way of example only, to the accompanying drawings which show apreferred embodiment of the present invention and in which:

[0023]FIG. 1 is a block diagram of an SVD-based OFDM-MIMO communicationsystem in accordance with the present invention;

[0024]FIG. 2 is a flow diagram of a partial SVD algorithm used by theSVD-based OFDM-MIMO communication system of FIG. 1;

[0025]FIG. 3a is a diagrammatic representation of the channelinformation in the frequency domain for the OFDM-MIMO system of FIG. 1;

[0026]FIG. 3b is a diagrammatic representation of the channelinformation in the time domain for the OFDM-MIMO system of FIG. 1;

[0027]FIG. 3c is a diagrammatic representation of the relation betweenthe channel information in the time and frequency domains;

[0028]FIG. 3d is a graph of a typical impulse response for the OFDM-MIMOsystem of FIG. 1;

[0029]FIG. 4 is a flow diagram of a process for creating channel-relateddata used by the SVD-based OFDM-MIMO communication system of FIG. 1based on truncated impulse response data;

[0030]FIG. 5a is a block diagram of an alternative SVD-based OFDM-MIMOcommunication system;

[0031]FIG. 5b is a block diagram of the transmitter of the SVD-basedOFDM-MIMO communication system of FIG. 5a;

[0032]FIG. 5c is a block diagram of the receiver of the SVD-basedOFDM-MIMO communication system of FIG. 5a;

[0033]FIG. 6a is a diagram illustrating the general data structure usedin the communication system of FIGS. 5a to 5 c comprising OFDMsuper-frames;

[0034]FIG. 6b is a diagram of the data structure of a channel trainingblock used in an OFDM super-frame for channel estimation;

[0035]FIG. 6c is a diagram of the data structure of a CTI symbol used inan OFDM frame;

[0036]FIG. 6d is a diagram of the distribution of synchronizationsymbols SY used in the synchronization of OFDM frames;

[0037]FIG. 7a is a diagram of a data structure employing a time-divisionmultiplexing scheme for subspace tracking on the spatial-subspacechannel level;

[0038]FIG. 7b is a diagram of the time-division multiplexing scheme forincorporating subspace training symbols ΛT for tracking subspaceinformation on the transmitter antenna level;

[0039]FIG. 7c is a diagram of the data structure of OFDM framesincorporating subspace training symbols ΛT for tracking subspaceinformation and synchronization symbols SY for synchronization;

[0040]FIG. 8 is a diagram of an example of the overall OFDM datastructure used by the communication system of FIGS. 5a to 5 c; and,

[0041]FIG. 9 is a block diagram of a data estimation unit used by thereceiver of FIG. 5c.

DETAILED DESCRIPTION OF THE INVENTION

[0042] Referring to FIG. 1, shown therein is a block diagram of anSVD-based OFDM-MIMO communication system 10 in accordance with thepresent invention. The communication system 10 comprises a transmitter12 with a transmitter antenna array 14 having M transmitting antennaelements, and a receiver 16 with a receiver antenna array 18 having Nreceiving antenna elements. The transmitter 12 and the receiver 16 areconnected by a multi-path communications channel. The transmitter 12processes an input data symbol stream, which generally comprises complexdata symbols, by allocating a portion of the input data symbol streamx_(k) to different spatial-subspace channels of a given sub-carrier k,and providing a stream of (different) OFDM data symbol waveforms to eachantenna element of the transmitter antenna array 14. It should beunderstood that the term data symbol stream represents a stream of datasymbols where each data symbol is related to a group of input data bits(as explained below). A data symbol should not be confused with an OFDMdata symbol. An OFDM data symbol is a collection of data symbols acrossall OFDM sub-carriers.

[0043] The OFDM data symbol waveforms are transmitted to the receiverantenna array 18 of the receiver 16 via a communications channel thatcomprises a plurality of signal paths for each OFDM sub-carrier k. Thesignal paths comprise several spatial-subspace channels S_(k1), S_(k2),. . . , S_(kp) (for simplicity, only the spatial-subspace channels forsub-carrier k are shown). The receiver 16 processes the received datasymbol waveforms to provide an output data symbol stream y_(k) whichcomprises complex data symbols corresponding to those in the input datasymbol stream x_(k). Alternatively, both the transmitter 12 and thereceiver 16 may function as transceivers. The communication system 10will be described in terms of a generic sub-carrier k, however, itshould be understood by those skilled in the art that each of theoperations performed by the communication system 10 is repeated for eachsub-carrier.

[0044] The input data symbol stream x_(k) is generated from an inputbinary stream by grouping a number of consecutive bits of the inputbinary stream and applying a mapping process to these consecutive databits to generate input data symbols. The mapping process can be anyappropriate modulation scheme such as Quadrature Amplitude Modulation(QAM). The input binary stream may be provided by any number of devicessuch as a computer, a router or an electronic communication device.Similarly, the output data symbol stream y_(k) is applied to acorresponding de-mapping process to obtain an output binary stream thatcorresponds to the input binary stream. The output binary stream may beprovided to a computer, router or other electronic communication device.It should be understood by those skilled in the art that appropriatehardware (not shown) is connected to the transmitter antenna array 14for providing digital-to-analog conversion and RF up-conversion prior totransmission of the data symbol waveforms. Corresponding hardware (notshown) is connected to the receiver antenna array 18 for providing RFdown-conversion and analog-to-digital conversion after reception of thedata symbol waveforms.

[0045] The spatial nature of the sub-carriers results from the creationof multiple spatial channels due to the use of multiple antenna elementsat the transmitter 12 and the receiver 16. The spatial channels betweenthe transmitter antenna array 14 and the receiver antenna array 18 canbe represented by a quasi-static channel matrix H_(k) which describesthe channel between each antenna element of the transmitter antennaarray 14 and each antenna element of the receiver antenna array 18 for agiven sub-carrier k. Given that an input symbol vector of M elementsx_(k) is applied at the input of the transmitter antenna array 14 and anoutput symbol vector of N elements y_(k) is received at the output ofthe receiver antenna array 18, then the relation between the inputsymbol vector x_(k), the output symbol vector y_(k) and the channelmatrix H_(k) is as shown in equation 1.

Y _(k) =H _(k) X _(k) +n _(k)  (1)

[0046] The matrix H_(k) is an M×N complex-valued channel matrix givenby: $\begin{matrix}{H_{k} = \left\lfloor \begin{matrix}{H_{k}\left( {1,1} \right)} & \cdots & {H_{k}\left( {1,N} \right)} \\\vdots & ⋰ & \vdots \\{H_{k}\left( {M,1} \right)} & \cdots & {H_{k}\left( {M,N} \right)}\end{matrix} \right\rfloor} & (2)\end{matrix}$

[0047] and n_(k) is a zero-mean complex Gaussian noise vector.

[0048] The plurality of spatial-subspace channels for a givensub-carrier k is due to the use of the SVD operation on thecorresponding channel matrix H_(k). Using the SVD operation, the channelmatrix H_(k) is decomposed into a product of three matrices U_(k),Λ_(k), and V_(k)* as given by equation 3.

H_(k)=U_(k)Λ_(k)V_(k)*  (3)

[0049] where Λ_(k) is a diagonal matrix of real, non-negative singularvalues, λ_(k,1) 22 λ_(k,2)>λ_(k,3)>. . . >λ_(k,p)>0 with p=rank (H_(k)),U_(k) and V_(k)* are unitary matrices and V_(k)* is thecomplex-conjugate transpose of V_(k). The dimensions of the matrices areas follows: H_(k) is M×N, U_(k) is M×p, Λ_(k) is p×p, and V_(k)* is p×N.The magnitude of each singular value relates to the quality of theassociated spatial-subspace channel for the OFDM sub-carrier k.

[0050] Matrix manipulation can be used to determine the diagonal matrixλ_(k) based on the channel matrix H_(k) as given by equation 4.

Λ_(k) =V _(k) H _(k) U _(k)*  (4)

[0051] Starting with equation 1 and first pre-multiplying the inputsymbol vector X_(k) with the transmit weight matrix V_(k) andpre-multiplying the entire right-hand side of equation 1 with thereceive weight matrix U_(k)*, corresponding to the system layout givenin FIG. 1, the output symbol vector Y_(k) is given by equation 5:

Y _(k) =U _(k)*(H _(k) V _(k) X _(k) +n_(k))=Λ_(k)X_(k)+U_(k)*n_(k)  (5)

[0052] in which the channel matrix H_(k) has been diagonalized toprovide orthogonal spatial-subspace channels for the sub-carrier k. Thechannel matrix H_(k) is diagonalized by controlling the weights appliedat the transmitter 12 and receiver 16 in a joint manner (i.e.simultaneously). These weights must be updated on a periodic basis sincethe channel matrix H_(k) is quasi-static.

[0053] The transmitter 12 further comprises a subspace allocation unit20, a transmitter link adaptation unit 22, a transmitter weighting unit24, an IFFT unit 26, a transmitter SVD unit 28 and a training unit 30connected as shown in FIG. 1. The subspace allocation unit 20 receivesthe input data symbol stream x_(k) and divides the input data symbolstream into a plurality of input data symbol sub-streams x_(k1), x_(k2),. . . , x_(kp) for allocation on a plurality of spatial-subspacechannels S_(k1), S_(k2), . . . , S_(kp) for the OFDM sub-carrier k. Thetransmitter link adaptation unit 22 provides transmission information tothe subspace allocation unit 20 which is related to subspace qualityinformation (i.e. the quality of the spatial-subspace channels) for thesub-carrier k. The transmission information is received from thereceiver 16 (discussed in further detail below). The subspace allocationunit 20 uses the transmission information for allocating the input datasymbol stream x_(k) on the plurality of spatial-subspace channelsS_(k1), S_(k2), . . . , S_(kp) since some of the spatial-subspacechannels may not be suitable for supporting data transmission (i.e. thesingular value associated with a particular spatial-subspace channel mayhave too low a magnitude). The signal voltage carried by each of thesespatial-subspace channels is proportional to the corresponding singularvalue which provides an indication of whether a spatial-subspace channelis strong or weak. The subspace allocation unit 20 may also apply codingtechniques to transmit the input data symbol sub-streams x_(k1), x_(k2),. . . , x_(kp) on a combination of spatial-subspace channels as isdescribed in further detail below.

[0054] The input data symbol sub-streams x_(k1), x_(k2), . . . , x_(kp)are then supplied to the transmitter weighting unit 24 which multipliesthe input data symbol sub-streams with complex weighting values providedby the transmit weight matrix V_(k) for producing transmit-weightedspatial-subspace data. The transmit-weighted spatial-subspace datacorresponds to distributing the input data symbol sub-streams over thespatial-subspace channels S_(k1), S_(k2), . . . , S_(kp) for sub-carrierk. The spatial-subspace channels S_(k1), S_(k2), . . . , S_(kp) may beorthogonal to each other. Ideally orthogonal spatial-subspace channelswill not interfere in the spatial domain. Alternatively, thespatial-subspace channels S_(k1), S_(k2), . . . , S_(kp) may bedependent on one another (via coding) or there may be a combination oforthogonal and dependent spatial-subspace channels for a givensub-carrier k (as discussed further below). In this example, there are pspatial-subspace channels for sub-carrier k. The total number ofcommunication paths for the communication system 10 is the sum of thenumber of spatial-subspace channels across all sub-carriers. The outputof the transmitter weighting unit 24 is a symbol vector x_(k) having Melements, wherein the elements of the symbol vector x_(k) are applied toa separate antenna element of the transmitter antenna array 14.

[0055] The transmit-weighted spatial-subspace data is then provided tothe IFFT (i.e. Inverse Fast Fourier Transform) unit 26 which isconnected to the transmitter antenna array 14. The IFFT unit 26 is atransmitter processing unit that converts the transmit-weightedspatial-subspace data to the time-domain for producing data symbolwaveforms for transmission by the transmitter antenna array 14. The IFFTunit 26 operates in a block fashion by collecting a plurality oftransmit-weighted spatial-subspace data symbols for each antenna elementof the transmitter antenna array 14, and then performing the IFFToperation to generate an OFDM symbol for each antenna element of thetransmitter antenna array 14. The IFFT unit 26 is preferably a bank ofIFFT operators with the number of IFFT operators being equivalent to thenumber of transmitting antennas 14. Alternatively, the output of thetransmitter weighting unit 24 may be provided to one IFFT operator in atime division manner and the output of the IFFT operator correspondinglyprovided to one antenna element of the transmitter antenna array 14.

[0056] The transmit weight matrix V_(k) is calculated by the transmitterSVD unit 28 which receives the corresponding channel matrix H_(k) fromthe transmitter link adaptation unit 22. Channel related informationassociated with the channel matrix H_(k) (rather than the channel matrixitself) is included in the transmission information which is sent fromthe receiver 16 to the transmitter link adaptation unit 22 for theefficient operation of the communication system 10. The channel relatedinformation comprises channel impulse response data as will be discussedin further detail below. The transmitter link adaptation unit 22calculates the channel matrix H_(k) from the channel related data.

[0057] The training unit 30 generates training sequences so that thereceiver 16 can estimate the channel matrix H_(k) and provide thechannel related data to the transmitter link adaptation unit 22. Thetraining sequences are provided to the IFFT unit 26 and are preferablytraining symbols that have a low peak-to-average power. The trainingsymbols are generated in the frequency-domain and converted to the timedomain by the IFFT unit 26 prior to transmission. Alternatively, thetraining unit 30 may generate the training signals in the time domainand directly provide these signals to the transmitter antenna array 14.In this case, the training unit 30 would be connected to the transmitterantenna array 14 rather than the IFFT unit 26.

[0058] Training symbols are periodically generated and transmitted tothe receiver 16 for periodically estimating the channel matrix H_(k) foreach sub-carrier k. Alternatively, depending on the frequency spacingbetween the sub-carriers, it may be possible that the communicationchannel for several adjacent sub-carriers can be adequatelycharacterized by a single channel matrix. In this case, a channel matrixHr and one set of triplet matrices U_(r), Λ_(r) and V_(r) can be used torepresent a group of adjacent sub-carriers k, . . . , k+r.

[0059] The training unit 30 is also connected to the subspace allocationunit 20 for providing subspace training sequences to the subspaceallocation unit 20. The subspace training sequences are preferablygenerated in the frequency-domain (i.e. subspace training symbols) andmay be similar to the channel training symbols. The subspace trainingsymbols are inserted periodically into the input data symbol sub-streamsfor tracking changes in the singular values of the singular value matrixΛ_(k). For this purpose, the subspace training symbols are inserted inone spatial-subspace channel at a time. Subspace tracking is discussedin further detail below.

[0060] In addition to the receiver antenna array 18, the receiver 16further comprises an FFT unit 32, a receiver weighting unit 34, achannel estimation unit 36, a data estimation unit 38, a receiver SVDunit 40 and a receiver link adaptation unit 42 connected as shown inFIG. 1. The FFT (i.e. Fast Fourier Transform) unit 32 converts thereceived data symbol waveforms into the frequency domain. The FFT unit32 is preferably a bank of FFT operators with the number of FFToperators being equivalent to the number of antenna elements in thereceiver antenna array 18. Alternatively, the output of the receiverantenna array 18 may be provided in a time division fashion to one FFToperator.

[0061] In general, the received data symbol waveforms comprisetransmit-weighted spatial-subspace data symbols, training symbols(channel or subspace) and other data (i.e. synchronization signals) formaintaining the operation of the communication system 10. The FFT unit32 provides the transmit-weighted spatial-subspace data and the subspacetraining symbols to the receiver weighting unit 34 while the FFT unit 32provides the channel training symbols to the channel estimation unit 36.

[0062] The receiver weighting unit 34 weights the transmit-weightedspatial-subspace data with complex weighting values provided by thereceive weight matrix U_(k)* in accordance with equation 5 to providereceive-weighted spatial-subspace data. The receiver weighting unit 34also weights the subspace training symbols in a similar fashion toprovide receive-weighted subspace training symbols. The receiverweighting unit 34 provides the receive-weighted spatial-subspace dataand the receive-weighted subspace training symbols to the dataestimation unit 38 and the receiver link adaptation unit 42respectively.

[0063] The data estimation unit 38 processes the receive-weightedspatial-subspace data to provide the output data symbol stream y_(k) foreach sub-carrier k. The data estimation unit 38 performs an estimationprocess since the receive-weighted spatial-subspace data is corrupted bynoise. The data estimation unit 38 may also possibly perform a decodingprocess if coding was used to combine some of the spatial-subspacechannels for the sub-carrier k. Further, the data estimation unit 38 maycomprise a de-mapper for providing an output data bit stream rather thanthe output data symbol stream y_(k).

[0064] The channel estimation unit 36 processes the channel trainingsymbols, using a technique described below, for estimating each channelmatrix H_(k). The channel estimation unit 36 is connected to thereceiver SVD unit 40 so that the receiver SVD unit 40 can process eachchannel matrix H_(k) and determine the corresponding matrices U_(k)* andΛ_(k). Accordingly, the receiver SVD unit 40 is connected to thereceiver weighting unit 34 for providing the weighting values for eachmatrix U_(k)* to the receiver weighting unit 34. The channel estimationunit 36 also generates channel related data for each channel matrixH_(k). The generation of the channel related data is described in moredetail below.

[0065] The channel estimation unit 36 and the receiver SVD unit 40 arealso both connected to the receiver link adaptation unit 42 to providethe channel related data and the corresponding singular value matrixΛ_(k) respectively. The receiver link adaptation unit 42 processes thesingular value matrix Λ_(k) to determine subspace quality information.The receiver link adaptation unit 42 then determines transmissionparameters based on the subspace quality information for the sub-carrierk. The subspace quality information is determined from the magnitude ofthe singular values which are on the diagonal of the singular valuematrix Λ_(k). In general, a singular value with a larger magnitudeindicates a better quality spatial-subspace channel on which data can betransmitted. For example, input data symbol sub-streams that areallocated on a strong spatial-subspace channel can be modulated using ahigher order modulation scheme in which the data points in thecorresponding constellation are spaced closer together, such as 32QAMfor example. The receiver link adaptation unit 42 bundles thetransmission parameters and the channel related data aschannel/transmission information (CTI) and sends the information to thetransmitter link adaptation unit 22.

[0066] The magnitude of the singular values can change in time, spaceand frequency. Accordingly, the receiver link adaptation unit 42continuously adapts the transmission parameters when the channelestimation unit 36 estimates new channel matrices H_(k) (which is doneperiodically) and the receiver SVD unit 40 subsequently re-calculatesthe matrices U_(k)* and Λ_(k). The receiver link adaptation unit 42 alsoprocesses the receive-weighted subspace training symbols to trackvariations in the singular value matrix Λ_(k) and provide updatedsingular value matrices before the receiver SVD unit 40 periodicallyre-calculates the singular value matrix Λ_(k).

[0067] The receiver link adaptation unit 42 is connected to the dataestimation unit 38 to provide an initial singular value matrix Λ_(k),updated singular value matrices and transmission parameters for thespatial-subspace channels for a given sub-carrier k. The data estimationunit 38 uses these matrices and the transmission parameters for theestimation and detection of the input data symbols) in thereceive-weighted spatial-subspace data which has been corrupted by noiseand may have coded spatial-subspace channels. The data estimation unit38 preferably employs a successive-interference cancellation method fordetecting the data symbols on the uncoded spatial-subspace channels.This involves detecting the data symbols received along the strongestspatial-subspace channel first, subtracting these data symbols from thereceive-weighted spatial-subspace data, then detecting the data symbolsreceived along the next strongest spatial-subspace channel andsubtracting these data symbols from the receive-weightedspatial-subspace data and so on. The strength of the spatial-subspacechannels is given by the signal-to-noise-plus-interference ratio of eachspatial-subspace channel. If coding is used to combine some of thespatial-subspace channels, then a corresponding decoding/detectionmethod is used by the data estimation unit 38 as will be described inmore detail below.

[0068] As is commonly known to those skilled in the art, a sequence ofalgebraic operations for constructing a singular value decompositionthat will reach an exact solution for the diagonalization of a matrix ina finite number of operations does not exist. In practice, commonly usedSVD algorithms, such as the Jacobi-based algorithms, perform manyiterations, such as at least 20 iterations for a MIMO system with alarge number of antenna elements, to arrive at a precise solution forproviding a singular value matrix Λ_(k) in which the off-diagonalcomponents have a value of zero. However, implementing such an iterativeSVD algorithm in the transmitter and receiver SVD units 28 and 40 is toocomputationally intensive since the SVD operation must be periodicallyexecuted for a plurality of channel matrices.

[0069] Accordingly, the transmitter and receiver SVD units 28 and 40implement a partial SVD algorithm or process 50 as outlined in FIG. 2.The matrices are initialized as follows: Λ_(kint)=H_(k), U_(kinit)=I andV_(kinit)=I, where I is the identity matrix. The first step 52 of thepartial SVD algorithm 50 is to perform n1 iterations of an iterative SVDalgorithm, such as the Jacobi algorithm, on a channel matrix H_(k) toobtain an interim receive weight matrix U_(k)′, an interim singularvalue matrix Λ_(k)′ and an interim transmit weight matrix V_(k)′, wherethe value of n1 is a low integer preferably chosen in the range of 1 to4. More preferably, the value of n1 is 2 or 3. It should be understoodthat any iterative technique could be used. At this point, in the matrixΛ_(k)′, the magnitudes of the dominant singular values (i.e. thediagonal components of the Λ_(k)′ matrix) start to become noticeable(i.e. a first upper group of diagonal components have much larger valuesthan a second lower group of diagonal components) and the off-diagonalcomponents start having small but non-zero values. A thresholdingprocedure is then applied to the magnitudes of the singular values ofthe singular value matrix Λ_(k)′ at step 54 to determine the number ofspatial-subspace channels p_(k) for the channel matrix H_(k). Forexample, assuming an 8×8 channel matrix H_(k), the number of practicallyusable spatial-subspace channels may be three or four. Alternatively, insome sub-carriers, rather than thresholding, a pre-specified number maybe used for the number of spatial-subspace channels p_(k). Thispre-specified number may be determined experimentally by examining aplurality of estimated channel matrices for the communication system fora particular sub-carrier k. The pre-specified number of spatial-subspacechannels p_(k) may also be dictated by the cost and complexity of thecommunication system 10.

[0070] The next step 56 in the partial SVD algorithm 50 is to truncatethe interim singular value matrix Λ_(k)′ by retaining the p_(k)×p_(k)sub-matrix within matrix Λ_(k)′ and replacing the remaining entries inthe matrix Λ_(k)′ with zeros (i.e. zero-padding) to produce a truncatedsingular value matrix Λ_(k)″. The uppermost leftmost corner of thep_(k)×p_(k) sub-matrix coincides with the uppermost leftmost corner ofthe matrix Λ_(k)′. An error in the singular values results from thepartial SVD algorithm 50 due to this truncation. However, this error maybe compensated for by periodically tracking the singular values in thematrix Λ_(k) which results from the algorithm 50 as described furtherbelow. Alternatively, if the error is small then the compensation is notneeded. This use of truncation allows for faster convergence inobtaining the SVD of the channel matrix H_(k). The interim receive andtransmit weight matrices U_(k)′ and V_(k)′ are also truncated duringthis procedure to produce truncated receive and transmit weight matricesU_(k)″ and V_(k)″. The truncated receive weight matrix U_(k)″ consistsof the p_(k) leftmost columns of the matrix U_(k)′ and the truncatedtransmit weight matrix V_(k)″ consists of the p_(k) rightmost columns ofthe matrix V_(k)′.

[0071] The next step 58 in the partial SVD algorithm 50 is to perform n2iterations of the SVD algorithm using the truncated matrices U_(k)″,Λ_(k)″ and V_(k)″ to obtain the matrices U_(k), Λ_(k) and V_(k). Again,the value of n2 is preferably chosen in the range of 1 to 4. Morepreferably, the value of n2 is 2 or 3. The inventors have found that thetriplet of matrices U_(k), Λ_(k) and V_(k) which result from the partialSVD algorithm 50 are an approximation and are quite close to thematrices that result from the use of a full iterative SVD algorithm whenapplied to a Rician (see later) channel matrix.

[0072] In an alternative, rather than selecting a constant number forthe iterations n1 and n2 in steps 52 and 58, the magnitude of theoff-diagonal components of the interim singular value matrix Λ_(k)′ andthe truncated singular value matrix Λ_(k)″, respectively, may bemonitored in relation to the magnitude of the components on the diagonalto determine the number of iterations. For instance, a variable numberof iterations n1 and n2 may be performed in steps 52 and 58 until thesum of the square of the magnitude of the off-diagonal components are apre-specified fraction (for example {fraction (1/20)}^(th), {fraction(1/50)}^(th) or {fraction (1/100)}^(th)) of the sum of the square of themagnitude of the diagonal components. However, for computationalefficiency, a maximum number of iterations n1max and n2max is preferablypre-specified for n1 and n2. For instance, n1max and n2max may be 4, 6or 10.

[0073] It may be possible to further process the singular value matrixΛ_(k) which results from the partial SVD algorithm 50 by applying thepartial SVD algorithm 50 to the matrix Λ_(k) (whereas previously it wasapplied to the matrix H_(k)). The advantage of this approach is that thepartial SVD algorithm is applied to a reduced size matrix (the matrixΛ_(k) has dimensions p_(k)×p_(k) whereas the matrix H_(k) had dimensionsof M×N) so that the computational complexity does not increasesignificantly. Further, a better estimate of the singular values in thesingular value matrix Λ_(k) can be obtained and the off-diagonalelements of the matrix Λ_(k) will get closer to zero.

[0074] The effectiveness and the applicability of the partial SVDalgorithm 50 for diagonalizing the channel matrix H_(k) is possible dueto the correlation properties of the channel matrix H_(k) in certainpropagation environments. The channel matrix H_(k), in environmentswhere there are preferred directions of signal propagation, can bedescribed as Rician in which there is a subset of strong spatialchannels within the channel matrix H_(k) which relate to the strongsingular values associated with the channel matrix H_(k).

[0075] As mentioned previously, once the triplet of matrices U_(k),Λ_(k), and V_(k)are determined for a sub-carrier k, channel informationmust be provided to the transmitter 12 in order to diagonalize thechannel matrix H_(k) to provide the spatial-subspace channels for theOFDM sub-carrier k. Referring to FIG. 3a, shown therein is arepresentation of a set of channel frequency response matrices 60 forthe communication system 10 in the frequency domain for sub-carriers k=1to Fmax. The frequency response of a spatial channel between onetransmitter antenna and one receiver antenna is represented by afrequency vector where each sample in the frequency vector is taken fromthe same location in each of the channel matrices H_(k).

[0076] An equivalent representation of the channel information is shownin FIG. 3b, which shows a set of channel impulse matrices 62 for thecommunication system 10 in the time domain for time indices g=1 to Tmax.The channel impulse response of a spatial channel between onetransmitter antenna and one receiver antenna is represented by a timevector where each sample in the time vector is taken from the samelocation in each of the channel impulse matrices hg, g=1 to Tmax. Ingeneral, there are Tmax samples in each channel impulse response vector.

[0077] Referring now to FIG. 3c, the two sets of channel matrices 60 and62 are related to each other by the Inverse Fourier Transform when goingfrom the frequency domain to the time domain (or alternatively theFourier Transform when going from the time domain to the frequencydomain). In practice, an Inverse Fast Fourier Transform (IFFT) ispreferably used to convert from the frequency domain to the time domain.As is well known by those skilled in the art, the IFFT produces a timedomain vector of Z samples when provided with a frequency domain vectorof Z samples. However, the channel information is encoded differently inthe frequency and time domains. In particular, the inventors haverealized that most of the channel information is encoded in a firstportion of the time domain vector.

[0078] Referring now to FIG. 3d, shown therein is a general channelimpulse response 64 that defines the spatial channel from a transmitterantenna element b to a receiver antenna element c. As can be seen, thechannel impulse response 64 contains a majority of the signal energy(and thus the channel information) in the first ti samples, with theremainder of the samples in the channel impulse response 64 representingmainly noise. Accordingly, only a portion of the channel impulseresponse 64 is relevant. Consequently, an improvement in transmissionefficiency of the channel information data for the communication system10 can be obtained by truncating each channel impulse response h_(g) andtransmitting each truncated channel impulse response to the transmitter12 rather than sending each channel matrix H_(k) or each transmit weightmatrix V_(k) to the transmitter 12. The value of t_(i) may be determinedby using an amplitude threshold value on each channel impulse responsehg such that after the time sample t_(i), the amplitudes of the channelimpulse response hg are lower than the amplitude threshold value.Another method to determine the value of t_(i) is to define a percentageenergy threshold value and determine the value of t_(i) such that thetruncated channel impulse response contains a percentage energy of thetotal energy of the channel impulse response equivalent to thepercentage energy threshold (i.e. for example 90% of the total energy).Accordingly, with both of these methods, there may be a different numberof samples in each of the truncated channel impulse responses.Alternatively, the value of t_(i) may be pre-specified and used totruncate each channel impulse response hg (for example the value oft_(i) may be chosen to be the length of the OFDM guard interval). Thepre-specified value of t_(i) may be determined through experimentaltrials and chosen such that accurate channel information is contained ineach truncated channel impulse response. The inventors have found that apreferable value for t_(i) is 64 samples (whereas the original length ofthe channel impulse response vector is 1024 samples).

[0079] As discussed previously, for an exemplary MIMO system with 8transmitter antenna elements, 8 receiver antenna elements and 768sub-carriers, assuming 32 bits of data are used for representing acomplex number, sending all of the channel matrices H_(k) to thetransmitter 12 requires 1.5 Mbits of data. Alternatively, sending all ofthe transmit weight matrices V_(k) to the transmitter 12 requires 0.78Mbits of data. However, when sending all of the truncated channelimpulse responses to the transmitter 12, and assuming that eachtruncated channel impulse response is truncated to 64 samples, theamount of data required is 8*8*64*32=0.13 Mbits of data. This representsa substantial savings in the amount of transmitted data by a factor of11 when compared to sending the channel matrices H_(k) and 6 whencompared to sending the transmit weight matrices V_(k).

[0080] Referring now to FIG. 4, shown therein is a process 70 forsending channel related data to the transmitter 12 so that the transmitweight matrices V_(k) can be calculated at the transmitter 12 fordiagonalizing the communication channel of the communication system 10.The process 70 is repeated for each combination of antenna elements fromthe transmitter antenna array 14 and the receiver antenna array 18. Theprocess 70 begins at step 72 in which the channel impulse responseh_(b,c) for transmitter antenna b and receiver antenna c is obtained.This may be done in two fashions. Firstly, a pulse may be sent from theb^(th) transmitter antenna element to the c_(th)receiver antenna elementto obtain the channel impulse response h_(b,c). This approach mayfurther include sending several pulses and averaging the resultingchannel impulse responses (in the time domain) to reduce noise. Anotherapproach is to send a sequence with good correlation properties andcross-correlate this sequence received at the receiver 16 with a replicaof the original sequence at the receiver 16 to obtain an estimate of thechannel impulse response. This approach may also include sending severalsequences and averaging the resulting channel impulse response estimateto reduce noise. Alternatively, the channel matrices H_(k) for thesystem 10 may be obtained using frequency domain techniques by usingchannel training symbols, as explained further below, to obtain thethree dimensional frequency response channel matrix 60. The IFFT is thendone on a frequency response vector taken from the b_(th) row and thec_(th) column of the three dimensional frequency channel matrix 60 toobtain the channel impulse response h_(b,c).

[0081] The next step 74 is to truncate the channel impulse responseh_(b,c) to produce a truncated channel impulse response h′_(b,c) whichretains only the first t_(i) samples of the channel impulse responseh_(b,c). As mentioned previously, this truncation provides the benefitof reducing the amount of data that has to be transmitted to thetransmitter 12. However, this truncation also provides the benefit ofnoise reduction since there is mostly noise and not much signal afterthe first t_(i) samples in the channel impulse response h_(b,c). Thenext step 76 is to send the truncated channel impulse response h′_(b,c)to the transmitter 12.

[0082] Once the transmitter 12 receives the truncated channel impulseresponse h′_(b,c), the next step 78 is to zero pad the truncated channelimpulse response h′_(b,c) thereby producing a zero-padded channelimpulse response h⁰ _(b,c). The truncated channel impulse responseh′_(b,c) is preferably zero-padded to the original length of the channelimpulse response h_(b,c). The next step 80 is to perform the FFT on thezero-padded channel impulse response h⁰ _(b,c). This provides afrequency response vector H_(f)(b,c) which spans the sub-carriers of thesystem 10 and corresponds to a row vector along frequency fortransmitter antenna element b and receiver antenna element a in thethree dimensional frequency response channel matrix 60.

[0083] The step 80 of performing the FFT on the zero-padded channelimpulse response h⁰ _(b,c) provides the advantage of spreading out thenoise in the truncated channel impulse response h′_(b,c) along a largernumber of samples (i.e. from the t_(i) samples in the truncated channelimpulse response h′_(b,c), to the total number of samples in thezero-padded channel impulse response h⁰ _(b,c)). For example, assumingthere is 1024 samples in the zero-padded channel impulse response h⁰_(b,c) and 64 samples in the truncated channel impulse responseh′_(b,c), an improvement of 1024/64 (i.e. 12 dB) in signal to noiseratio is obtained in step 80. The channel estimation unit 36 performssteps 72 to 74 of process 70 and the transmitter link adaptation unit 22performs steps 78 to 80 of process 70.

[0084] The process 70 is performed for the impulse response of eachcombination of the antenna elements of the transmitter antenna array 14and the receiver antenna array 18 in order to produce a plurality offrequency response vectors for constructing the three-dimensionalfrequency response channel matrix 60 at the transmitter 12. Theindividual channel matrices H_(k) for each sub-carrier k can then beobtained from the three-dimensional frequency response channel matrix 60by taking a vertical slice at frequency index k. The SVD can then beperformed by the transmitter SVD unit 28 on each of the channel matricesH_(k) to obtain the corresponding transmit weight matrices V_(k).

[0085] Furthermore, since the communication system 10 may be a frequencyduplex system in which a communication channel exists for a first set ofsub-carriers from the transmitter 12 to the receiver 16 and for a secondset of sub-carriers from the receiver 16 to the transmitter 12, theprocess 70 may be performed to send channel related data to either thetransmitter 12 or the receiver 16. In this case, the communicationssystem can be considered to have a first processing unit and a secondprocessing unit with a communications channel therebetween. The firstprocessing unit sends channel training signals to the second processingunit which estimates channel impulse response data, truncates this dataand sends the truncated channel impulse response data to the firstprocessing unit. The first processing unit then zero-pads the truncatedchannel impulse response data and performs a frequency transform on thezero-padded channel impulse response data to obtain a three-dimensionalchannel matrix. In one case, the first processing unit may be thetransmitter and the second processing unit may be the receiver. In asecond case, the first processing unit may be the receiver and thesecond processing unit may be the transmitter.

[0086] Referring now to FIG. 5a, shown therein is an alternativeSVD-based OFDM-MIMO communication system 100 having a transmitter 112and a receiver 216. The functionality of the transmitter 112 is similarto the transmitter 12 and the functionality of the receiver 216 issimilar to the receiver 16. Accordingly, both the partial SVD algorithm50 and the process 70 for generating the channel related data usingtruncated impulse responses is utilized by both transmitter/receiversets of communication systems 10 and 100 as is the use of OFDMsynchronization, data estimation, channel training symbols for channelestimation and subspace training symbols for subspace tracking.Accordingly, components which are common to both transmitters 12 and 112have reference labels that are offset by 100 and components that arecommon to both receivers 16 and 216 have reference labels that areoffset by 200.

[0087] The fine partition of the communication channel in frequency (dueto the use of OFDM) and spatial-subspaces (due to the use of SVD-basedMIMO) enables the implementation of sophisticated adaptive algorithmsfor the communication system 100 at the sub-carrier and spatial-subspacelevel. For instance, adaptive subspace allocation, adaptive subspacecoding, adaptive power allocation, and adaptive modulation may be usedso that at any time, the available channel resources are preferablyutilized optimally for the communication system 100. The receiver 216determines transmission parameters related to spatial-subspace channelallocation, spatial-subspace channel coding, power allocation andmodulation based on the subspace quality information and provides thesetransmission parameters to the transmitter 112. As mentioned previously,the receiver 216 also provides channel information to the transmitter112. Accordingly, the data transmission protocol of the communicationsystem 100 is adaptive in time, frequency and space.

[0088] Referring now to FIG. 5b, the transmitter 112 comprises a firstcommunication device 102 that provides an input data bit stream xbcomprising binary data to a transmitter data pump 104. The firstcommunication device 102 may be a computer, router or other electroniccommunication device. The transmitter data pump 104 is a hardware unitthat is responsible for routing data to various units in the transmitter112. A subspace allocation unit 120 receives the input data bit streamxb from the transmitter data pump 104 and transmission parameters from atransmitter adaptation unit 122. The subspace allocation unit 120 usesthe transmission parameters for allocating an input data symbol streamx_(k), derived from the input data bit stream xb, on variousspatial-subspace channels for a sub-carrier k. A first data mapper unit106 applies a particular modulation scheme, specified by the transmitterlink adaptation unit 122, to the input data bit stream xb to generatethe input data symbol stream x_(k) (which in general comprises complexdata symbols) and provides the input data symbol stream x_(k) to thesubspace allocation unit 120. The subspace allocation unit 120 providesat least a portion of the transmission parameters to the first datamapper unit 106 for specifying the modulation scheme and the modulationorder (i.e. modulation rate).

[0089] The transmission parameters used by the subspace allocation unit120 include information on spatial-subspace channel allocation,spatial-subspace channel coding and the spatial-subspace channelmodulation. These parameters are based on the subspace qualityinformation for the associated channel matrix H_(k). Thespatial-subspace channel allocation information indicates whichspatial-subspace channels can support data transmission using a desiredmodulation order. The spatial-subspace channel coding informationindicates whether coding should be used to combine two spatial-subspacechannels for transmitting data. Spatial-subspace channels of variousquality, such as two strong spatial-subspace channels, two weakspatial-subspace channels or a weak and a strong spatial-subspacechannel could be combined using coding. Accordingly, the resultingspatial-subspace channels may be orthogonal to each other or thespatial-subspace channels may be dependent on one another (via coding)or there may be a combination of orthogonal and dependentspatial-subspace channels for a given sub-carrier k.

[0090] The spatial-subspace channel modulation information, provided tothe first data mapper unit 106, indicates the modulation scheme thatshould be used on each spatial-subspace channel. The modulation schemewhich can be used can vary from QAM to Phase Shift Keying (PSK) andBinary Phase Shift Keying (BPSK) with various modulation orders such as64QAM, 32QAM, 16QAM, 4QAM, QAM, 64QPSK, 32QPSK, 16QPSK, 4QPSK, QPSK,BPSK, or other appropriate forms of modulation as is commonly known tothose skilled in the art. The higher rates of modulation are used forstronger spatial-subspace channels, since the data points in theconstellations corresponding to higher modulation rates are closertogether and require a channel with a better signal to noise ratio forminimizing data transmission errors. In each case, the signal tointerference and noise ratio (SINR) for a spatial-subspace channel canbe examined to ensure that a certain bit-error rate (BER) is maintainedduring transmission on a particular spatial-subspace channel or aplurality of coded spatial-subspace channels. The SINR for aspatial-subspace channel will depend on the magnitudes of the singularvalue and the noise and interference associated with thatspatial-subspace channel.

[0091] Alternatively, the subspace allocation unit 120 and the firstdata mapper unit 106 can work in unison for a joint mapping andallocation of the input data symbol stream x_(k) according to aninter-spatial-subspace channel multi-resolution modulation scheme. Theinter spatial-subspace channel multi-resolution modulation scheme, for agiven modulation scheme, specifies that the input data symbols that arethe furthest apart from each other in the corresponding constellation,are allocated to weaker spatial-subspace channels. For instance, theinput data symbols may be at the four corners of the constellation.Since the input data symbols are spaced far apart from one another inthe constellation, these input data symbols may be placed in weakerspatial-subspace channels where it should still be possible todistinguish these input data symbols from one another despite noisecorruption during data transmission. In contrast, the input data symbolsthat are spaced closer together in the constellation for the modulationscheme, are allocated to the stronger spatial-subspace channels. Forinstance, the input data symbols may be at the center of theconstellation. Since the input data symbols are spaced close together,stronger spatial-subspace channels which have a larger SINR are neededsince it will not take as much noise to cause these input data symbolsto interfere with one another as it would for input data symbols thatare positioned at the four corners of the constellation. The advantageof the inter-spatial-subspace channel multi-resolution modulation schemeis reduced processing complexity since the same constellation size (i.e.modulation rate or order) is used for both strong and weakspatial-subspace channels.

[0092] The subspace allocation unit 120 provides a plurality of inputdata symbol sub-streams with each data symbol sub-stream being allocatedto a spatial-subspace channel. In general, there are two categories ofinput data symbol sub-streams: “q_(k)” input data symbol sub-streamsthat are allocated on coded spatial-subspace channels and “r_(k)” inputdata symbol sub-streams that are allocated on uncoded spatial-subspacechannels, where r and k are integers that are greater than or equal to0. The input data symbols received from the first data mapper unit 106that are assigned to the coded spatial-subspace channels are representedby xc and the input data symbols that are assigned to the uncodedspatial-subspace channels are represented by xu.

[0093] The number of consecutive input data symbols that are processedat a time depends on the type of coding which is done on thespatial-subspace channels. For instance, if block space-time coding isused for coding the spatial-subspace channels, then two consecutiveinput data symbols are preferably processed at a time. In this case, thesubspace allocation unit 120 preferably allocates the input data symbolsub-streams in the following fashion: a) a first data symbol sub-streamcomprises two input data symbols xu_(k)(1) and xu_(k)(2) that areallocated on the first spatial-subspace channel which is uncoded, b) asecond data symbol sub-stream comprises two input data symbols xu_(k)(3)and xu_(k)(4) that are allocated on the second spatial-subspace channelwhich is uncoded and c) a third data symbol sub-stream comprises twoinput data symbols xc_(k)(1) and xc_(k)(2) that are allocated on thethird and fourth spatial-subspace channels which are coded. However,there could be other forms of coding in which more than two input datasymbol sub-streams are coded and there are a corresponding number ofcoded spatial-subspace channels.

[0094] The subspace allocation unit 120 provides the input data symbolsub-streams to an encoder unit 108. The encoder unit 108 possibly codesthe input data symbol sub-streams thereby producing uncoded/coded inputdata symbol sub-streams xs_(k1), xs_(k2), xs_(k3) and xs_(k4).Accordingly, the uncoded/coded input data symbol sub-streams maypossibly comprise at least one uncoded input data symbol sub-stream forallocation on a corresponding at least one uncoded spatial-subspacechannel and may possibly comprise at least one pair of coded input datasymbol sub-streams for allocation on a corresponding at least one pairof coded spatial-subspace channels. In this example, there are fourspatial-subspace channels with two of the channels being uncoded and twoof the channels being coded. In general, there are several possibilitiesfor the spatial-subspace channels. For instance, each spatial-subspacechannel may be uncoded or there may be at least one spatial-subspacechannel that is uncoded with the remaining pairs of spatial-subspacechannels being coded. Alternatively, there may only be codedspatial-subspace channels.

[0095] The transmitter adaptation unit 122 is connected to the encoderunit 108 to provide transmission parameters that indicate whichspatial-subspace channels are uncoded and which are coded. The encoderunit 108 simply passes the input data symbol sub-streams xu which are tobe sent on the uncoded spatial-subspace channels s_(k1) and s_(k2) andprocesses the input data sub-streams xc that are to be sent on the codedspatial-subspaces s_(k3) and s_(k4) (in this example). The encoder unit108 preferably uses block space-time coding with a depth of two inputdata symbols (as shown in Table 1) to create an equivalent channel fromtwo spatial-subspace channels such that a desired BER is maintained fora given modulation scheme. Alternatively, other forms of coding may beused such as space-frequency coding or time-frequency coding (both ofthese forms of coding are commonly known to those skilled in the art).TABLE 1 Space-Time block encoding Spatial-subspace spatial-subspace Datasymbol channel 3 channel 4 xc_(k)(1) xc_(k)(1) xc_(k)(2) xc_(k)(2)−xc_(k)*(2) xc_(k)*(1)

[0096] The subspace training unit 132 receives the coded/uncoded inputdata symbol sub-streams xs_(k1), xs_(k2), xs_(k3) and xs_(k4) from theencoder unit 108 and interleaves subspace training symbols into thecoded/uncoded input data symbol sub-streams xs_(k1), xs_(k2), xs_(k3)and xs_(k4) thereby producing input data/training symbol sub-streamsxs′_(k1), xs′_(k2), xs′_(k3) and xs′_(k4). Accordingly, the subspacetraining unit 132 is connected to a training unit 130 to receive thesubspace training symbols. The subspace training symbols are interleavedinto the coded/uncoded input data symbol sub-streams in an uncodedmanner. The subspace training symbols are preferably used to track onespatial-subspace channel at a time.

[0097] A power allocation unit 134 is connected to the subspace trainingunit 132. The power allocation unit 134 receives the input data/trainingsymbol sub-streams xs′_(k1), xs′_(k2), xs′_(k3) and xs′_(k4) and weightseach of these sub-streams with a corresponding power coefficient α₁,α₂,α₃ and α₄ to obtain power-weighed sub-streams α₁xs′_(k1), α₂xs′_(k2),α₃xs′_(k3) and α₄xs′_(k4). The power allocation unit 134 is connected tothe transmitter adaptation unit 122 in order to receive the portion ofthe transmission parameters that provides information onspatial-subspace channel power weighting.

[0098] Many different power allocation schemes may be implemented by thepower allocation unit 134 under the direction of the transmitter linkadaptation unit 122. For instance, one spatial-subspace channel may havea much higher SINR than is required for a certain data modulation schemein which case a portion of the transmitter power may be routed from thisspatial-subspace channel to the other spatial-subspace channels for thesame sub-carrier k. Other power allocation methods include thewater-filling method in which more power is allocated to the strongestspatial-subspace channels. Alternatively, the power allocationcoefficients can be based on the average singular value amplitude perspatial-subspace channel across all sub-carriers. This technique reducesthe computational demand at the receiver 216 and the amount of data thatneeds to be transmitted back to the transmitter 112.

[0099] The transmitter weighting unit 124 receives the power-weightedsub-streams α₁xs′_(k1), α₂xs′_(k2), α₃xs′_(k3) and α₄xs′_(k4) andfurther weights these sub-streams with transmitter weights to producetransmit-weighted spatial-subspace data. As explained previously fortransmitter 12, the transmitter weighting unit 124 multiplies thepower-weighted sub-streams with complex weighting values provided by thetransmit weight matrix V_(k) in accordance with equation 5 fordiagonalizing the channel matrix H_(k) for the sub-carrier k.Accordingly, via multiplication with the transmit weight matrix V_(k),the transmit-weighted spatial-subspace data is now distributed along thevarious spatial-subspace channels for the sub-carrier k and assigned toeach element of the transmitter antenna array 114. This processing isapplied to all of the sub-carriers.

[0100] The transmit weight matrix V_(k) is calculated by the transmitterSVD unit 128 and provided to the transmitter weighting unit 124. Thetransmitter SVD unit 128 calculates the transmit weight matrix V_(k)from the corresponding channel matrix H_(k) which is provided by thetransmitter link adaptation unit 122. The transmitter link adaptationunit 122 preferably computes the channel matrix H_(k) in the samefashion described previously for the transmitter link adaptation unit 22using truncated channel impulse response data.

[0101] A transmitter channel unit 136 receives the transmit-weightedspatial-subspace data from the transmitter weighting unit 124 andinterleaves channel/transmission information (CTI) and channel trainingsequences into the transmit-weighted spatial-subspace data therebyproducing interleaved spatial-subspace data for transmission to thereceiver 216. The channel training symbols are provided by the trainingunit 130. The channel training sequences are inserted periodically intothe transmit-weighted spatial-subspace data so that the receiver 216 canestimate the channel matrices H_(k). The channel training sequences mayalso be intermittently inserted for providing synchronization betweenthe transmitter 112 and the receiver 216 (as described below).

[0102] The channel/transmission information is inserted into thetransmit-weighted spatial-subspace data because the communication system10 is bi-directional. The transmitter 112 and the receiver 216 actuallyfunction as transceivers in a frequency division duplex fashion in whichOFDM data waveforms are sent from the transmitter 112 to the receiver216 in a first frequency range and OFDM data waveforms are sent from thereceiver 216 to the transmitter 112 in a second frequency range toincrease the rate of data transmission for the communication system 100.Accordingly, the channel matrices H_(k) must be estimated in bothdirections and the corresponding matrices U_(k) and V_(k) for eachchannel matrix H_(k) must be updated at both the transmitter 112 and thereceiver 216 for both frequency ranges. The transceiver aspect of thetransmitter 112 and the receiver 216 is not emphasized for simplifyingthe description of the communication system 100. Accordingly,channel/transmission information (CTI) for the OFDM channel from thereceiver 216 to the transmitter 112 is measured at the transmitter 112(in a similar manner to the channel measurement which occurs at thereceiver 216) and the channel/transmission information is provided tothe transmitter data pump 104. The transmitter data pump 104 isconnected to a second data mapper unit 138 which modulates thechannel/transmission information using any appropriate modulation schemeas is commonly known to those skilled in the art. The second data mapperunit 138 then provides the modulated channel/transmission information tothe transmitter channel unit 136. Alternatively, the system 100 may alsooperate in a time division duplex manner in which case the channelmatrix H_(k) for each sub-carrier k is symmetrical (i.e. there is noneed to feedback the channel information from the transmitter to thereceiver; only transmission information need be transmitted).

[0103] The interleaved spatial subspace data is partitioned into blocksof data before transmission to the receiver 216. The channel trainingsymbols are provided in a first portion of the block of data forallowing the communication system 100 to periodically estimate thechannel matrices H_(k). The data in each data block is furtherpartitioned into a plurality of data sub-blocks. Synchronizationsymbols, channel/transmission information and subspace training symbolsare interleaved with the transmit-weighted spatial-subspace data in eachof the data sub-blocks. The structure of the data blocks and datasub-blocks are described in more detail below.

[0104] The transmitter channel unit 136 provides the interleavedspatial-subspace data to the IFFT unit 126. The IFFT unit 126 convertsthe interleaved spatial-subspace data to the time domain therebyproducing data symbol waveforms comprising OFDM data symbols. The RFunit 140 processes the data symbol waveforms for RF transmission by thetransmitter antenna array 114. Accordingly, the RF unit 140 compriseshardware for performing digital-to-analog conversion and RFup-conversion to increase the center frequency of the data symbolwaveforms. The RF unit 140 may further comprise hardware forinterpolating and filtering the data symbol waveforms as is commonlyknown to those skilled in the art.

[0105] Referring now to FIG. 5c, the receiver 216 comprises a receiverantenna array 218 which receives the data symbol waveforms. An RF unit220 is connected to the receiver antenna array 218 and processes thedata symbol waveforms by RF down-converting these waveforms andperforming analog to digital conversion to produce received data symbolwaveforms. The received data symbol waveforms are in the time domain. AnFFT unit 232, connected to the RF unit 220, processes the received datasymbol waveforms to provide received spatial-subspace data which isfrequency domain data. The FFT unit 232 and the RF unit 220 are alsoconnected to a first multiplexer MUX1 in order to provide the receiveddata symbol waveforms and the received spatial-subspace data as inputdata to the first multiplexer MUX1. After the FFT operation, thereceiver processing is performed for all sub-carriers individually.

[0106] The multiplexer MUX1 provides either the received data symbolwaveforms or the received spatial-subspace data to the channelestimation unit 236. When the transmitter 112 first begins to send datasymbol waveforms to the receiver 216, the receiver 216 must besynchronized to the transmitter 112 in order for the FFT unit 232 to beable to correctly process the received data symbol waveforms.Accordingly, the channel estimation unit 236 processes at least aportion of the received data symbol waveforms to provide asynchronization signal for the FFT unit 232. A synchronization unit 222,connected to the channel estimation unit 236, receives thesynchronization signal determines a timing offset parameter. The timingoffset parameter is then provided to the FFT unit 232.

[0107] The channel estimation unit 236 preferably employs acorrelation-based synchronization method to recognize repetitivepatterns in the received data symbol waveforms (recall that thetransmitter 112 inserted synchronization sequences having repetitivepatterns into the data that was transmitted). The synchronizationprocess is performed at various times during the operation of thecommunication system 100. The channel estimation unit 236 preferablycalculates the cross-correlation coefficient between two samples spaceda certain number of samples apart in the synchronization sequences. Thisis repeated over several samples as is commonly known by those skilledin the art. The resulting cross-correlation sequence has a maximum valueat a time sample G which corresponds with the end of the repetitivesynchronization sequence. The synchronization unit 222 receives theindex of time sample G and calculates the timing offset parameter whichis then provided to the FFT unit 232.

[0108] As mentioned previously in the description of the transmitter112, the data symbol waveforms that are transmitted also contain channeland transmission information (CTI). Accordingly, the receiver 216comprises a CTI symbol demodulator 224, connected to the FFT unit 232,that demodulates the CTI information in the received spatial-subspacedata. The CTI symbol demodulator 224 performs a decoding/detectionprocess based on the modulation scheme that is used by the second datamapper 138 in the transmitter 112. A super-frame detector 226, connectedto the CTI symbol demodulator 224, analyzes the demodulated CTIinformation to determine whether a new super-frame (discussed below) ofOFDM spatial-subspace data is being received by the receiver 216. Thesuper-frame detector 226 may use a correlation technique with aprogrammable threshold for detecting each new OFDM super-frame. Thebeginning of each OFDM super-frame contains channel training signals.Accordingly, the super-frame detector 226 is connected to the channelestimation unit 236 and the multiplexer MUX1 to indicate the detectionof a new OFDM super-frame. When the beginning of an OFDM super-frame isdetected, the multiplexer MUX1 provides the received spatial-subspacedata to the channel estimation unit 236 which then estimates the set ofchannel matrices H_(k) as described further below.

[0109] A receiver SVD unit 240, connected to the channel estimation unit236, performs the SVD operation on the estimated channel-matrices H_(k),in accordance with the partial SVD algorithm described previously, toobtain the triplet of matrices V_(k), Λ_(k) and U*_(k) for eachsub-carrier k. A receiver weighting unit 234, connected to the receiverSVD unit 240, then applies the weights in the matrix U*_(k) to thereceived spatial-subspace data to provide receive-weightedspatial-subspace data. The receiver SVD unit 240 is also connected to areceiver link adaptation unit 242 to provide an initial estimate of thesingular value matrix Λ_(k).

[0110] A second multiplexer MUX2, connected to the receiver weightingunit 234, routes the receive-weighted spatial-subspace data to either adata estimator unit 238 or the receiver link adaptation unit 242. Asmentioned previously in the description of the transmitter 112, thereceive-weighted spatial-subspace data comprises, in part, input datasymbols and subspace training symbols. When the receive-weightedspatial-subspace data comprises subspace training signals, the receiverlink adaptation unit 242 processes the subspace training signals fortracking the subspace variation in the singular value matrix Λ_(k). Whenthe receive-weighted spatial-subspace data comprises input data symbols,the data estimation unit 238 processes the received-weightedspatial-subspace data for estimating output data that is related to theinput data bits xb. The estimation may include detection and decodingand the output data may be a data bit stream or a stream of data symbolswith associated confidence levels (as discussed further below).

[0111] A receiver data pump 244, connected to the data estimation unit238 and the receiver link adaptation unit 242, routes data and otherinformation to various units in the receiver 216. In particular, thedata estimation unit 238 is connected to a data interface 246. The datainterface 246 receives the estimated output data and provides this datato a second communication device 248. The second communication device248 may be a computer, router or the like.

[0112] The receiver link adaptation unit 242 comprises a subspace matrixtracker 228 and a transmission and channel information unit 230. Thesubspace matrix tracker 228 receives an initial estimate of the singularvalue matrix Λ_(k) from the receiver SVD unit 240. The subspace matrixtracker 228 also processes the subspace training symbols in thereceive-weighted spatial-subspace data, received from the multiplexerMUX2, for periodically updating the singular value matrix Λ_(k) asdescribed further below. The subspace matrix tracker 228 is alsoconnected to the data estimation unit 238 for providing the initialestimate of the singular value matrix Λ_(k) and the values in theupdated singular value matrix Λ_(k).

[0113] The transmission and channel information unit 230 is connected tothe subspace matrix tracker 228 to receive the initial estimate of thesingular value matrix Λ_(k) for determining subspace quality informationfor each sub-carrier at the beginning of an OFDM super-frame. Thetransmission and channel information unit 230 calculates thetransmission parameters based on the subspace quality information. Thetransmission and channel information unit 230 is also connected to thechannel estimation unit 236 to receive channel related data. Thetransmission and channel information unit 230 combines the transmissionparameters and the channel related data into channel/transmissioninformation (CTI). The transmission and channel information unit 230 isfurther connected to a transmission interface 250 of the receiver datapump 244. The transmission interface 250 receives thechannel/transmission information from the transmission and channelinformation unit 230 and routes this information to the transmissionportion of the receiver 216, which is similar to the transmitter 112,(recall that the transmitter 112 and the receiver 216 are transceivers)for transmitting the channel/transmission information to the transmitter112.

[0114] The receiver link adaptation unit 242 determines the transmissionparameters which include spatial-subspace channel allocation,spatial-subspace channel coding, spatial-subspace channel modulation andspatial-subspace channel power weighting. As mentioned previously, eachtransmission parameter is determined by examining the signal tointerference and noise ratio (SINR) for each spatial-subspace channelfor a particular sub-carrier k. A particular combination ofspatial-subspace channel allocation, spatial-subspace channel coding,spatial-subspace channel modulation and spatial-subspace channel powerweighting can be selected based on the SINR and a desired BER for agiven spatial-subspace channel or for a given plurality of codedspatial-subspace channels.

[0115] Referring now to FIG. 6a, shown therein is the data structure 300used by the communication system 100 for transmitting data. At thetransmitter 112, the input data symbol stream is divided into aplurality of OFDM super-frames of which three are shown 302, 304 and306. Each OFDM super-frame comprises a first channel training block 308which contains channel training symbols and a plurality of OFDM framesof which three are shown 310, 312 and 314. There are NF OFDM frames ineach OFDM super-frame. In general, each OFDM frame comprises a slot fora training/synchronization symbol 316 (i.e. either a training symbol, asynchronization symbol or a training/synchronization symbol (i.e. asymbol used both for training and synchronization)), a slot for achannel/transmission information (CTI) symbol 318 and a plurality ofslots for OFDM data symbols for carrying data, of which three are shown320, 322 and 324. There are Ns OFDM data symbols in an OFDM frame. Thesesymbols may be OFDM symbols in which all the OFDM sub-carriers are usedfor a particular purpose, i.e. channel training, subspace training,synchronization, channel/transmission information or data.Alternatively, these symbols may be sequences in which a portion of theentire set of sub-carriers is used for a particular purpose. In thiscase, it could be more generally stated that each OFDM frame comprises aslot for a training/synchronization sequence (i.e. at least one of or acombination of a channel training sequence, a subspace trainingsequence, a synchronization sequence or a training/synchronizationsequence (i.e. a sequence used both for training and synchronization)),a slot for a channel/transmission information (CTI) sequence and aplurality of slots for data sequences. Accordingly, some of thesesequences may be combined into an OFDM symbol. In another sense, theslots may contain at least a portion of each of these sequencesdepending on the length of these sequences and the number ofsub-carriers.

[0116] Each OFDM symbol preferably comprises a guard portion havingduration T_(G) seconds and a useful information portion having durationT_(U) seconds. Accordingly, the total duration of an OFDM symbol isT_(S)=T_(U)+T_(G) seconds. The guard portion is used to mitigateintersymbol interference as is commonly known to those skilled in theart. The guard portion may be a cyclic prefix representing a copy of theend of the information portion of the OFDM data symbol.

[0117] In general, an OFDM symbol can be one of: a) a training symbol,b) a synchronization symbol, c) a training/synchronization symbol, d) achannel/transmission information symbol CTI and e) a data symbol. Thetraining/synchronization symbol 316 can be a subspace training symbolthat is used for subspace tracking or a synchronization symbol that isused for synchronization. In some cases, an OFDM frame may not have atraining symbol or a CTI symbol (discussed further below). The length ofan OFDM frame and an OFDM super-frame is selected to meet requirementssuch as time stability of the channel, frequency stability of thereference source and control information bandwidth.

[0118] The channel training block 308 is sent at the beginning of eachOFDM super-frame for periodically estimating the communication channel.The length of the OFDM super-frame is chosen based on the timewide-sense stationarity of the communication channel. Each channelmatrix H_(k) is estimated, the corresponding triplet of matrices U_(k),Λ_(k) and V_(k) are estimated and the channel related data is thencalculated. The receiver link adaptation unit 242 then calculates thetransmission parameters and provides the channel/transmissioninformation (CTI). These matrices, channel related data and transmissionparameters are used for the data transmission that occurs during thenext OFDM super-frame. Accordingly, during the first OFDM super-frame,no data symbols are sent. Further, the matrices U_(k) and V_(k) and thetransmission parameters remain fixed during the next OFDM super-frame.However, the estimated singular value matrix Λ_(k) is used only during afirst portion of the next OFDM super-frame and is updated periodicallyduring the remainder of the next OFDM super-frame (as discussed below).

[0119] Referring now to FIG. 6b, shown therein is a table showing theelements of an exemplary channel training block. This example assumesthat there are 8 transmitter antenna elements as shown in the firstcolumn labeled TX. To estimate the channel matrices H_(k), a pluralityof channel training symbols HT are sent from each transmitter antennaelement to all of the receiver antenna elements in a time-divisionmanner which allows for the row-wise construction of each channel matrixH_(k). For example, when transmitter antenna element 1 sends the channeltraining symbols HT, the first row of each channel matrix H_(k) can beestimated. Alternatively, rather than strictly using a time-divisionapproach and transmitting from one transmitter antenna element at atime, a combination of time-division and frequency-division may be usedin which all transmitter antenna elements transmit at the same time,however, different transmitter antenna elements transmit on differentOFDM sub-carriers. For instance, in a first time duration, transmitterantenna element 1 may transmit on OFDM sub-carriers at frequency indices1, 9, 17, etc., transmitter antenna element 2 may transmit on OFDMsub-carriers at frequency indices 2, 10, 18, etc., and so on. In thenext time duration, transmitter antenna element 1 may transmit on OFDMsub-carriers at frequency indices 2, 10, 18, etc., transmitter antennaelement 2 may transmit on OFDM sub-carriers at frequency indices 3, 11,19, etc., and so on. This process may be repeated 8 times so that eachtransmitter antenna element transmits on each OFDM sub-carrier.Alternatively, interpolation may be used in the frequency domain so thateach transmitter antenna need not transmit on each OFDM sub-carrier.Another approach is to transmit orthogonal training sequences in thetime domain on all transmitter antenna elements at the same time andthen separate the orthogonal training sequences at the receiver usingcorrelation. Yet another approach is to use a single training sequencein which the training sequence is shifted by a different amount at eachof the transmitter antenna elements, and correlation is used at thereceiver to recover the shifted training sequences.

[0120] As shown in FIG. 6b, in the time-division only channel trainingapproach, a plurality of the channel training symbols HT are preferablyrepeatedly transmitted by each antenna element in the transmitterantenna array 114. This allows for averaging the responses at thereceiver 216 when constructing each channel matrix H_(k) for noisereduction. This is advantageous since the accuracy of channel estimationis affected by noise and quantization error in the receiver 216. In thisexample, four channel training symbols are sent which provides for anoise reduction of 6 dB in the estimation of each channel matrix H_(k).A larger or smaller number of training symbols may be repeatedly sent byeach transmitter antenna depending on the amount of data/time that canbe used for channel estimation.

[0121] As mentioned previously, the channel training symbol HT is anOFDM symbol that preferably has a low peak-to-average power ratio inwhich some of the sub-carriers have a magnitude of zero. Morespecifically, the channel training symbol HT can be a pseudo-noisesequence in the frequency domain in which every even numberedsub-carrier has a magnitude of either +1 or −1 and every odd numberedsub-carrier has a magnitude of 0. This type of frequency domain sequencehas the property of repeating itself twice in the time domain.Accordingly, this frequency domain sequence can also be used for timingsynchronization, as is commonly known by those skilled in the art.Accordingly, the channel training symbol HT may be used for both channelestimation, in the channel training block 308 of each OFDM super-frame,and synchronization, in the training/synchronization symbol 316, of eachOFDM frame. The channel training symbol HT may also be used for subspacematrix tracking in which case the channel training symbol HT ismultiplied by the weighting matrix V_(k) to provide a subspace trainingsymbol ΛT. The channel training symbol HT is preferably modulated byBPSK prior to transmission. Alternatively, another low-order modulationscheme may be used.

[0122] The channel training symbol HT is modified by the communicationchannel H_(k)(b,c) between the transmitting antenna element b that sendsthe channel training symbol HT and the receiver antenna element c thatreceives the modified channel training symbol. At the receiver 216,after FFT processing for the receiver antenna element c, the channelestimation unit 236 receives the modified channel training symbol andmultiplies it with the original training symbol HT to produce aprocessed channel training symbol that contains the frequency responseof the communication channel H_(k)(b,c). This multiplication procedurehas the effect of removing the BPSK modulation (i.e. +1 or −1) of themodified channel training symbol. Interpolation is then performed on theprocessed channel training symbol to determine the amplitudes of the oddsub-carrier components of the channel frequency response. This procedureis repeated for each combination of the transmitter and receivingantenna elements to obtain the three-dimensional frequency responsematrix 60 shown in FIGS. 3a and 3 c.

[0123] Referring now to FIG. 6c, shown therein is the format of a CTIsymbol which carries the channel/transmission information. Each CTIsymbol comprises a header portion and an information portion. The headerportion of the CTI symbol contains a unique identifier that signifiesthe start of an OFDM super-frame if the CTI symbol is in the first frameof an OFDM super-frame (recall that the detection of the first OFDMsuper-frame is performed by the super-frame detector 226). Otherwise,the header portion of the CTI symbol contains the OFDM frame index(which may be repeated in the header portion for robustness).Accordingly, the header portion of the CTI symbol is used forsuper-frame synchronization. The information portion of the CTI symbolcontains the channel/transmission information which is modulated and mayalso include forward error correction.

[0124] The transmitter 112 and receiver 216 synchronize with oneanother: 1) when establishing a control channel at the beginning ofsystem operation, 2) at the beginning of each OFDM super-frame (bydetecting the super-frame header in the CTI symbols as discussedearlier), and 3) periodically in an OFDM super-frame during thetransmission of the OFDM frames. In each of these instances, the channeltraining symbols HT may be used for correlation-based synchronization asdescribed earlier.

[0125] The control channel must be established at the beginning ofsystem operation. One of the transmitter 112 and the receiver 216 isconsidered a master and the other is considered a slave. At thebeginning of system operation, the master transmits on the controlchannel by sending synchronization symbols via one of the antennaelements of the transmitter antenna array 114. The slave may receive thesynchronization symbols on a single antenna element or on all antennaelements of the receiver antenna array 218 (in this case blockspace-time coding can be used on the control channel for increasedrobustness). The slave will attempt to synchronize with thesynchronization signals. Once synchronization is achieved, the controlchannel is decoded and the slave can reply on the control channel tosignal that a link is established between the master and the slave. Themaster can then establish the MIMO channels by transmitting the channeltraining block.

[0126] The synchronization process also takes into account the differentpropagation delays between transmission from the antenna elements of thetransmitter antenna array 114 to the antenna elements of the receiverantenna array 218 periodically during an OFDM super-frame. Referring nowto FIG. 6d, shown therein is a multiplexing scheme for distributingsynchronization symbols SY for the synchronization of each OFDM frameand taking into account the different delays from each transmitterantenna. The synchronization symbols SY are sent separately by eachantenna element of the transmitter antenna array 114 so that thedifferent delays from each transmitter antenna element can be measuredand compared. There are also blank intervals in which no synchronizationsymbols are sent in an OFDM frame (i.e. the blank columns in FIG. 6d).However, other training symbols may be sent in these intervals asdiscussed below. The delay for transmission from each transmitterantenna element is measured indirectly by calculating the timing offsetword associated with each transmitter antenna element (as describedpreviously). The largest delay, represented by the largest timing offsetparameter, is used for synchronization by the FFT unit 232 such that thelargest delay spread falls within the guard portion of the OFDM symbols(it is desirable to perform the FFT as close as possible to the end ofthe guard interval). This measurement is performed periodically (every12 OFDM frames in this example) and the largest timing offset parameteris preferably updated after the 12^(th) OFDM frame (this measurement mayalternatively be performed over shorter or longer time frames asdesired).

[0127] The SVD-based MIMO model given in equations 1-5 assumes that thechannel matrix H_(k) is perfectly known. However, in practice, only anestimate of the channel matrix Ĥ_(k) is available whereĤ_(k)=H_(k)+ΔH_(k). The estimation error of ΔH_(k)depends onquantization error, channel noise and the channel estimation method.Accordingly, the channel matrix H_(k) cannot be truly diagonalizedmainly because the U_(k) and V_(k) matrices are computed from the matrixĤ_(k) rather than the matrix H_(k). This problem of matrixdiagonalization is further compounded by the use of the partial SVDalgorithm 50 (recall that the singular value matrix Λ_(k) isquasi-diagonal). Consequently, the received data symbol vector Y_(k) isgiven by equation 6 rather than equation 5.

Y _(k)=(Λ_(k) −U _(k) *ΔH _(k) V _(k))X _(k) +U _(k) *n _(k)  (6)

[0128] In order to detect the transmitted data symbol vector x_(k) fromthe received vector, the matrix Λ_(ek)=Λ_(k)−U_(k)*ΔH_(k)V_(k)should beknown. The inventors have realized that the matrix Λ_(ek) can beobtained in the same way as Ĥ_(k) (i.e. with the use of subspacetraining symbols ΛT), the only difference being that for channelestimation, the channel training symbols HT are un-weighted, while forsubspace tracking, the subspace training symbols ΛT have to be weightedby the weights provided by the matrix V_(k).

[0129] The estimation of the matrix Λ_(ek) is less computationallyintensive than the estimation of the channel matrices H_(k) because thematrix Λ_(ek) is smaller (i.e. Λ_(ek) has a dimension of p_(k)×p_(k))than the channel matrix H_(k). However, the matrix Λ_(ek) is“quasi-diagonal”, meaning that the off-diagonal components are small butnon-zero. These off-diagonal components represent inter-subspaceinterference. An example of the quasi-diagonal subspace matrix Λ_(ek) isshown in equation 7 for four subspaces. $\begin{matrix}{\Lambda_{ek} = \left\lfloor \begin{matrix}\lambda_{11} & \lambda_{12} & \lambda_{13} & \lambda_{14} \\\lambda_{21} & \lambda_{22} & \lambda_{23} & \lambda_{24} \\\lambda_{31} & \lambda_{32} & \lambda_{33} & \lambda_{34} \\\lambda_{41} & \lambda_{42} & \lambda_{43} & \lambda_{44}\end{matrix} \right\rfloor} & (7)\end{matrix}$

[0130] The columns of the matrix Λ_(ek), for a sub-carrier k, can bedetermined by sending the subspace training symbols ΛT on onespatial-subspace channel at a time. For example, the first row of thematrix Λ_(ek) can be determined by allocating the training symbols HT tothe first spatial-subspace channel, weighting the training symbols HT bythe transmit weight matrix V_(k) at the transmitter 112 to produce thechannel training symbols ΛT and transmitting the channel trainingsymbols to the receiver 216. The channel training symbols ΛT are thenweighted by the receive weight matrix U*_(k) at the receiver 216 toprovide values for the column in the quasi-diagonal singular valuematrix Λ_(ek) that corresponds to the first spatial-subspace channel.This is then repeated for each spatial-subspace channel.

[0131] Referring now to FIG. 7a, shown therein is a data transmissionscheme for sending the subspace training symbols ΛT in the OFDM framesof an OFDM super-frame. Time division is used at the spatial-subspacechannel level so that the subspace matrix tracker 228 knows whichspatial-subspace channel is being estimated. There are gaps in which nosubspace training symbols Λ_(T) are transmitted for providing thesubspace matrix tracker 228 with an opportunity to estimate the columnof the quasi-diagonal subspace matrix Λ_(ek). After the lastspatial-subspace channel is estimated, the singular value matrix Λ_(ek)is updated and used by the data estimation unit 238. This process isrepeated throughout the OFDM super-frame. Accordingly, the singularvalue matrix Λ_(ek) is continuously being tracked and updated during anOFDM super-frame. In this example, the subspace training symbols AT arespaced three OFDM frames apart. Furthermore, since there are fourspatial-subspace channels in this example, the sequence of ΛT trainingsymbols repeat every 12 OFDM frames and the quasi-diagonal subspacematrix Λ_(ek) is updated every 12 OFDM frames. The subspace trainingsymbols ΛT are generated in the same fashion as the channel trainingsymbols HT and are preferably modulated by BPSK. The subspace trainingsymbols AT can also be multiplied by the appropriate power coefficientα_(k1), α_(k2), α_(k3) and α_(k4) depending on the spatial-subspacechannel that is being tracked.

[0132] Referring now to FIG. 7b, shown therein is a data transmissionscheme for sending the subspace training symbols ΛT on each transmitterantenna element for subspace tracking. Following with the currentexample, in every 3^(rd) OFDM frame, each transmitter antenna elementsends the subspace training symbols ΛT for a particular spatial-subspacechannel. The gaps in the transmission of the subspace training symbolsΛT can be used for the transmission of synchronization symbols SY forOFDM frame synchronization as shown in FIG. 7c. It should be understoodthat the subspace training symbol ΛT and the synchronization symbol SYoccupy the training/synchronization symbol slot 316 in an OFDM frame(see FIG. 6a).

[0133] Referring now to FIG. 8, shown therein is an example of anoverall data structure used by the communication system incorporatingchannel training symbols HT, subspace training symbols ΛT,synchronization symbols SY, channel/transmission information CTI anddata symbols Di. The matrices U*_(k), V_(k) and Λ_(K) and thechannel/transmission information CTI have been estimated in the priorOFDM super-frame for use in the current OFDM super-frame. At thebeginning of the current OFDM super-frame, the channel training symbolsHT are transmitted during the channel training block (it should beunderstood that each transmitter antenna element can send more than onechannel training symbol HT for averaging to produce noise reduction).During the remainder of the current OFDM super-frame, the matricesU*_(k), V_(k) and Λ_(κ) and the channel/transmission information isbeing estimated for use in the next OFDM super-frame.

[0134] In the particular example shown in FIG. 8, 14 OFDM data symbolsD1, . . . , D14 are transmitted during each OFDM frame (although thiscan be increased or decreased as desired). Further, in OFDM frames 1 and4, the subspace training symbols ΛT are being sent for subspace trackingfor updating the quasi-diagonal subspace matrix Λ_(ek) every 12 OFDMframes. In addition, channel/transmission information CTI is sent duringevery OFDM frame by the first transmitter antenna element and receivedby each receiver antenna element. In this fashion, space diversity canbe used at the receiver 216 for improving the transmission of thechannel/transmission information CTI. Alternatively, thechannel/transmission information CTI may be transmitted by more than onetransmitter antenna element. However, some orthogonality must be imposedon the channel/transmission information CTI sent by each transmitterantenna element so that the receiver 216 can properly receive thechannel/transmission information.

[0135] Referring once more to FIG. 5c, the data estimation unit 238employs an iterative decoding/detection process for estimating outputdata that is related to the receive-weighted spatial-subspace data. Dueto complexity, the iterative decoding/detection process is described forthe particular case of three spatial-subspace channels in which onespatial-subspace channel is uncoded and the other two spatial-subspacechannels are space-time block coded. Further, for exemplary purposes,there are 8 transmitter antenna elements, 8 receiver antenna elementsand 3 spatial-subspace channels for sub-carrier k, with the firstspatial-subspace channel being uncoded and the second and thirdspatial-subspace channels being coded. After the FFT unit 232, an8-element received data symbol vector for the sub-carrier k ismultiplied by the 3×8 receive weight matrix U*_(k) to provide a 3×1receive-weighted data symbol vector. This is done for two consecutivereceived data symbol vectors for forming a 2×3 receive-weighted datasymbol matrix r_(k) that is the input to the data estimation unit 238 asgiven in equation 8. $\begin{matrix}{r_{k} = \begin{bmatrix}r_{11} & r_{12} \\r_{21} & r_{22} \\r_{31} & r_{32}\end{bmatrix}} & (8)\end{matrix}$

[0136] The first column (r₁₁, r₂₁, r₃₁) is the uncoded and coded pair ofreceive-weighted data symbols respectively for the firstreceive-weighted data symbol vector and the second column (r₁₂ r₂₂, r₃₂)is the uncoded and coded pair of receive-weighted data symbolsrespectively for the second receive-weighted data symbol vector.

[0137] In this example, the receive-weighted data symbols aredecoded/detected in pairs (since they were transmitted as pairs at thetransmitter 112 due to the block space-time coding applied to the codedspatial-subspace channels). The operations performed in each iterationof the iterative decoding/detecting process include: (1) decoding anddetection of the receive-weighted coded data symbols that aretransmitted on the coded spatial-subspace channels ignoring theinterference from receive-weighted uncoded data symbols that aretransmitted on the uncoded spatial-subspace channel, and (2) estimationand detection of the receive-weighted uncoded data symbols with thereceive-weighted coded data symbols replaced by the values detected instep (1). The iterative decoding/detection process is preferablycompleted in two iterations although more iterations may be used ifdesired. The detection performed in both steps preferably utilizes themaximum likelihood method.

[0138] The quasi-diagonal subspace matrix Λ_(ek) for the OFDMsub-carrier k is given by equation 9 for this example of threespatial-subspace channels. The quasi-diagonal subspace matrix Λ_(ek) iseither the originally calculated subspace matrix or an updated versiondepending upon within which OFDM frame the decoding/detecting is beingdone. $\begin{matrix}{\Lambda_{ek} = \begin{bmatrix}\lambda_{11} & \lambda_{12} & \lambda_{13} \\\lambda_{21} & \lambda_{22} & \lambda_{23} \\\lambda_{31} & \lambda_{32} & \lambda_{33}\end{bmatrix}} & (9)\end{matrix}$

[0139] The first row of the quasi-diagonal subspace matrix Λ_(ek)represents the uncoded spatial-subspace channel and the second and thirdrows represent the coded spatial-subspace channels.

[0140] The decoding is performed according to equations 10 and 11 toobtain estimated receive-weighted coded data symbols e_(c)(1) ande_(c)(2). $\begin{matrix}{{e_{c}(1)} = {\gamma \left( {{\lambda_{22}^{*}r_{21}} + {\lambda_{32}^{*}r_{31}} + {\lambda_{22}^{*}r_{23}} + {\lambda_{32}^{*}r_{33}}} \right)}} & (10) \\{{e_{c}(2)} = {\gamma \left( {{\lambda_{23}^{*}r_{21}} + {\lambda_{33}^{*}r_{31}} + {\lambda_{22}^{*}r_{22}} + {\lambda_{32}^{*}r_{32}}} \right)}} & (11)\end{matrix}$

[0141] The coefficient γ is given by equation 12. $\begin{matrix}{\gamma = \frac{1}{{\lambda_{22}}^{2} + {\lambda_{32}}^{2} + {\lambda_{23}}^{2} + {\lambda_{33}}^{2}}} & (12)\end{matrix}$

[0142] The value λ*₂₂ is the conjugate of λ₂₂ and the value ∥λ₂₂∥ is theabsolute value of λ₂₂. Estimated receive-weighted uncoded data symbolse_(u)(1) and e_(u)(2) are computed using equations 13 and 14 where δ isgiven by equation 15.

e _(u)(1)=δ(r ₁₁−λ₁₂ r ₂₁−λ₁₃ r ₃₁)  (13)

e _(u)(2)=δ(r ₁₂−λ₁₂ r ₂₂−λ₁₃ r ₃₂)  (14)

[0143] $\begin{matrix}{\delta = \frac{\lambda_{11}^{*}}{{\lambda_{11}}^{2}}} & (15)\end{matrix}$

[0144] Detection is performed on the estimated data symbols based on themaximum likelihood method which is well known by those skilled in theart. The modulation scheme used for creating the input data symbols atthe transmitter 112 is specified by the receiver link adaptation unit242. Prior to detection, the estimated receive-weighted coded anduncoded data symbols are power-weighted by coefficients β₁, β₂, and β₃,which are the inverses of the adaptive power allocation coefficients α₁,α₂ and α₃. The maximum likelihood method then produces detectedreceive-weighted uncoded and coded data symbols by determining whichpoint in the associated constellation of the modulation scheme isclosest to the power-weighted estimated receive-weighted uncoded andcoded data symbols. The detected uncoded data symbols are d_(u)(1) andd_(u)(2) and the detected coded data symbols are d_(c)(1) and d_(c)(2).

[0145] The following is a step-by-step description of the iterativedecoding/detection process for the exemplary receive-weighted datasymbol matrix r_(k) given by equation 8. During the first iteration:

[0146] Step 1: Load the symbol matrix r_(k) with the values in Table 2.TABLE 2 Element Value r₁₁ r_(u)(1) r₁₂ r_(u)(2) r₂₁ r_(c1)(1) r₂₂r_(c1)(2) r₃₁ r_(c2)(1) r₃₂ r_(c2)(2)

[0147] The values r_(u)(1) and r_(u)(2) are respectively the first andsecond receive-weighted uncoded data symbols that are received on thefirst spatial-subspace channel which is uncoded. The values r_(c1)(1)and r_(c1)(2) are respectively the first and second receive-weightedcoded data symbols that are received on the second spatial-subspacechannel which is coded. The values r_(c2)(1) and r_(c2)(2) arerespectively the first and second receive-weighted coded data symbolsthat are received on the third spatial-subspace channel which is coded.

[0148] Step 2: Decode the receive-weighed coded data symbols usingequations 10 to 12 and then detect the estimated receive-weighted codeddata symbols using the maximum-likelihood method. The detected codeddata symbols are d_(c)(1) and d_(c)(2).

[0149] Step 3: Load the receive-weighted data symbol matrix r_(k) withthe values in Table 3. TABLE 3 Element Value r₁₁ r_(u)(1) r₁₂ r_(u)(2)r₂₁ d_(c)(1) r₂₂ −d*_(c)(2) r₃₁ d_(c)(2) r₃₂ d*_(c)(1)

[0150] Step 4: Estimate the receive-weighed uncoded data symbols usingequations 13 to 15 and then detect the estimated receive-weighed uncodeddata symbols using the maximum-likelihood method. The detected uncodeddata symbols are d_(u)(1) and d_(u)(2). The data symbol vector[d_(u)(1); d_(u)(2); d_(c)(1); d_(c)(2)] is the result of the firstiteration of the iterative decoding/detection process.

[0151] Step 5: Apply the adaptive power allocation coefficients α_(i)and the adaptive subspace coding to the symbols d_(u)(1), d_(u)(2),d_(c)(1), d_(c)(2) and load the receive-weighted data symbol matrixr_(k) with these processed values as shown in Table 4. TABLE 4 ElementValue r₁₁ d_(u)(1) r₁₂ d_(u)(2) r₂₁ d_(c)(1) r₂₂ −d*_(c)(2) r₃₁ d_(c)(2)r₃₂ d*_(c)(1)

[0152] Step 6: Perform a second iteration of steps 2 to 5 on Table 4.These iterations comprise:

[0153] 6.1) Performing step 2

[0154] 6.2) Saving e_(c)(1) and e_(c)(2)

[0155] 6.3) Performing steps 3 and 4

[0156] 6.4) Saving e_(u)(1) and e_(u)(2)

[0157] The symbol vector [β₁e_(u)(1); β₁e_(u)(2); β₂e_(c)(1);β₃e_(c)(2)] is the result of the iterative decoding/detection process.The last operation is to recover the output data by de-mapping thedetected uncoded and coded data symbols according to the modulationscheme that was originally used to produce the input data symbols priorto transmission. The output data may be obtained by using a de-mappingmethod that incorporates a hard decision (such as the maximum likelihoodmethod for example) to provide output data bits yb. The data bits yb canthen be provided to the data interface 246 of the receiver data pump244. Alternatively, a de-mapping method that uses a soft decision may beused to provide an output data symbol stream with associated confidencelevels. In this case, the data interface 246 includes a decoder, such asa forward error decoder or the like, for determining the output databits yb based on the output data symbol stream and the associatedconfidence levels.

[0158] The iterative decoding/detection process can be applied to a widevariety of cases for the spatial-subspace channels for a givensub-carrier k such as: 1) there are only uncoded spatial-subspacechannels, 2) there is a combination of uncoded and codedspatial-subspace channels and 3) there are only coded spatial-subspacechannels. In the first case, a system of independent equations is usedfor estimation in which the number of equations is equal to the numberof uncoded spatial-subspace channels. Each of these independentequations would be similar to equations 13 to 15. Alternatively, if atleast one pair of coded spatial-subspace channels is used for datatransmission, then the iterative decoding/detection process begins withdecoding the receive-weighted coded data symbols using equations basedon equations 10 to 12. The estimated receive-weighted coded data symbolsare then detected, via the maximum likelihood method for example, toobtain the detected coded data symbols and the receive-weighted codeddata symbols are then replaced with the detected coded data symbols. Ifthere are more than one pair of coded spatial-subspace channels thendecoding/detection is first performed on the pair of codedspatial-subspace channels with the stronger SINR (i.e. larger magnitudesingular values) and then performed on the next strongest pairs of codedspatial-subspace channels. Once all of the coded receive-weighted datasymbols are detected, the receive-weighted uncoded data symbols on theuncoded spatial-subspace channels are then processed as describedpreviously. Alternatively, a form of coding may be used in which thereare more than two coded spatial-subspace channels which are dependent onone another. In any of the cases where there is more than two codedspatial-subspace channels, the iterative decoding/detection schemecomprises processing data transmitted on at least a portion of the codedspatial-subspace channels in the first step of each iteration.

[0159] Referring now to FIG. 9, shown therein is a block diagram of thedata estimation unit 238 that performs the iterative decoding/detectionprocess. The data estimation unit 238 comprises a subspace matrix unit300 and a symbol matrix unit 302. The subspace matrix unit 300 isconnected to the receiver link adaptation unit 242 to receive theinitial singular value matrix Λ_(k) and updates of the quasi-diagonalsingular value matrix Λ_(ek) (see equation 9). The symbol matrix unit302 is connected to the receiver weighting unit 234 (via the multiplexerMUX2) to receive the receive-weighted spatial-subspace data and storethis data in the receive-weighted data symbol matrix r_(k).

[0160] The data estimation unit 238 further comprises a coefficientcalculator 304, a calculation unit 306 and a first power weighting unit308. The coefficient calculator 304 calculates the various weightingcoefficients required by the iterative detection/decoding process.Accordingly, the coefficient calculator 304 is connected to the receiverlink adaptation unit 242 to receive the adaptive power allocationcoefficients α_(i) from which the inverse power coefficients β_(i) arecalculated. The coefficient calculator 304 is also connected to thesubspace matrix unit 300 to receive various components of thequasi-diagonal singular value matrix Λ_(ek) for calculating thecoefficients γ and δ (see equations 13 and 16).

[0161] The calculation unit 306 calculates the estimatedreceive-weighted uncoded and coded data symbols in the received symbolmatrix r_(k) in accordance with equations 11 to 16. Accordingly, thecalculation unit 306 is connected to the coefficient calculator 304 toreceive the coefficients γ and δ. The calculation unit 306 is alsoconnected to the receiver link adaptation unit 242 to receive thespatial-subspace channel coding transmission parameter for determiningwhether the spatial-subspace channels for the sub-carrier k are uncoded,coded or a combination of coded and uncoded. As mentioned previously, ifa combination of coded and uncoded spatial-subspace channels aretransmitted on the sub-carrier k, then the calculation unit 306 performscalculations in accordance with equations 11 to 16 for calculating theestimated receive-weighted uncoded and coded data symbols.Alternatively, if only coded spatial-subspace channels were transmittedon the sub-carrier k, then the calculation unit 306 performscalculations in accordance with equations 11 to 13 for calculating theestimated receive-weighted coded data symbols. In another alternative,if only uncoded spatial-subspace channels are transmitted on thesub-carrier k, then the calculation unit 306 performs calculations inaccordance with equations 14 to 16 for calculating the estimatedreceive-weighted uncoded data symbols.

[0162] The first power weighting unit 308 is connected to thecalculation unit 306 to receive the estimated receive-weighted coded anduncoded data symbols and weight these estimated data symbols with theweights β_(i). The weights β_(i) are the inverse of the adaptive powerallocation coefficients α_(i) that were used by the power allocationunit 134 of the transmitter 112. The output of the first power weightingunit 308 are power-weighted estimated uncoded and coded data symbols.

[0163] A detection unit 310, connected to the first power weighting unit308, receives the power-weighted estimated uncoded and coded datasymbols and applies a detection method to these data symbols. Thedetection unit 310 preferably applies the maximum likelihood method tothese data symbols for producing detected coded data symbols anddetected uncoded data symbols. Accordingly, the detection unit 310 isconnected to the receiver link adaptation unit 242 to receive thespatial-subspace channel modulation transmission parameter for thesub-carrier k. This parameter specifies the modulation scheme andmodulation rate that was used to create these data symbols at thetransmitter 112. The detection unit 310 produces the detected symbols bycomparing the power-weighted estimated uncoded and coded data symbolswith the symbols of the constellation associated with the modulationscheme to find the closest data symbol in the constellation.

[0164] The data estimation unit 238 further comprises a second powerweighting unit 312 and a recoding unit 314 that are connected betweenthe detection unit 310 and the symbol matrix unit 302. The locations ofthe weighting unit 312 and the recoding unit 314 are interchangeable.The weighting unit 312 and the recoding unit 314 process the detecteduncoded and coded data symbols by weighting these symbols with theadaptive power allocation coefficients α_(i) and coding these symbols inaccordance with the spatial-subspace channel coding transmissionparameter. Accordingly, the second power weighting unit 312 is connectedto the coefficient calculator 304 to receive the adaptive powerallocation coefficients α_(i) and the recoding unit 314 is connected tothe receiver link adaptation unit 242 to receive the channel codingtransmission parameter. The processed data is then provided to thesymbol matrix unit 302 to be entered within the receive-weighted datasymbol matrix r_(k) so that the data estimation unit 238 may performanother iteration of the iterative decoding/detection process.

[0165] The data estimation unit 238 further comprises a de-mapper unit316 which applies a de-mapping process to the power-weighted estimateduncoded and coded data symbols for obtaining output data. Accordingly,the de-mapper unit 316 is connected to the first power weighting unit308 to receive the power-weighted estimated uncoded and coded symbols.The de-mapper unit 316 is also connected to the receiver link adaptationunit 242 to receive the spatial-subspace channel modulation transmissionparameter so that the de-mapper unit 316 can apply the appropriateconstellation during the de-mapping process. The de-mapper unit 316 mayutilize a hard or soft decision algorithm in this de-mapping process, asis well known to those skilled in the art. If a hard-decision process!is used, then the output data from the de-mapper unit 316 comprises theoutput data bit stream yb. If a soft decision process is used, then theoutput data from the de-mapper unit 316 comprises output data symbolswith corresponding confidence levels. The power-weighted estimateduncoded and coded data symbols are provided to the de-mapper unit 316after the data estimation unit 238 has performed a desired number ofiterations of the iterative decoding/detection process.

[0166] One or more digital signal processor (DSPs), general purposeprogrammable processors, application specific circuitry and/or FPGAs maybe used to implement the various units of the transmitters 12 and 112and receivers 16 and 216 described herein. In addition, onboard orexternal ROM, flash EEPROM, or ferroelectric RAM may also be used. Inaddition, as previously mentioned, the transmitters 12 and 112 and thereceivers 16 and 216 described herein actually function as transceivers.These transceivers incorporate the structure of both the transmitter andthe receiver with the transmitter and receiver being connected via thedata pump.

[0167] Various types of coding and error correction can be utilized forthe various types of information transmitted by the communication systemof the present invention. For instance, turbo product code, as is wellknown by those skilled in the art, may be used for forward errorcorrection for the data bits xb prior to conversion to data symbols witha selected code rate and generator polynomial. CRC bits could also beincluded in the data bits xb. Forward error correction can also beapplied to the channel/transmission information data.

[0168] Although the preceding detailed discussion contains manyspecifics for the purposes of illustration, anyone of ordinary skill inthe art will appreciate that the description is not to be considered aslimiting the scope of the present invention, but rather as merelyproviding a particular preferred working embodiment thereof. Forinstance, the communication system is not restricted to OFDM-basedsystems and can be used for any communication system that employsmultiple antennas at the transmitter and receiver and transmits data onat least one sub-carrier. Furthermore, the communication system is notrestricted to wireless contexts and may exploit any channel havingmultiple inputs or multiple outputs and certain other characteristics.Accordingly, one skilled in the art will appreciate that many variationsand alterations can be made to the embodiment described and illustratedherein, without departing from the present invention, the scope of whichis defined in the appended claims.

1. A communication system for transmitting an input data symbol stream over a plurality of spatial-subspace channels of a sub-carrier between a transmitter and a receiver, wherein said transmitter comprises: a) an encoder unit for processing a plurality of input data symbol sub-streams for providing a plurality of uncoded/coded input data symbol sub-streams comprising at least one of: 1) at least one uncoded input data symbol sub-stream for allocation on a corresponding at least one uncoded spatial-subspace channel of said plurality of spatial-subspace channels and 2) at least two coded input data symbol sub-streams for allocation on a corresponding at least two coded spatial-subspace channels of said plurality of spatial-subspace channels, said plurality of input data symbol sub-streams being derived from said input data symbol stream; b) a transmitter weighting unit connected to said encoder unit for weighting said plurality of uncoded/coded input data symbol sub-streams with a transmit weight matrix corresponding to said sub-carrier for distributing said plurality of uncoded/coded input data symbol sub-streams along said plurality of spatial-subspace channels and providing transmit-weighted spatial-subspace data; wherein, said receiver comprises: c) a receiver weighting unit for receiving spatial-subspace data related to said transmit-weighted spatial-subspace data and weighting said spatial-subspace data with a receive weight matrix for providing receive-weighted spatial-subspace data; and, d) a data estimation unit connected to said receiver weighting unit for receiving and performing an iterative processing method on said receive-weighted spatial-subspace data to estimate output data related to said input data symbol stream, said iterative processing method comprising successively processing data on each of said plurality of spatial-subspace channels in said receive-weighted spatial-subspace data.
 2. The communication system of claim 1, wherein said plurality of spatial-subspace channels comprise only uncoded spatial-subspace channels and said data estimation unit is adapted to perform a successive interference cancellation method for providing said estimated output data by detecting receive-weighted data symbols on one of said uncoded spatial-subspace channels, subtracting detected receive-weighted data symbols from the receive-weighted spatial-subspace data and iteratively processing receive-weighted spatial-subspace data on remaining uncoded spatial-subspace channels in a similar fashion.
 3. The communication system of claim 2, wherein the uncoded spatial-subspace channels are processed in order of decreasing signal to noise plus interference ratio.
 4. The communication system of claim 1, wherein said plurality of spatial-subspace channels comprise only said at least two coded spatial-subspace channels and said data estimation unit is adapted to perform an iterative decoding/detection method on the receive-weighted spatial-subspace data for providing said estimated output data, with one iteration of said decoding/detection method comprising: (1) decoding and detecting receive-weighted coded data symbols transmitted on at least a portion of said at least two coded spatial-subspace channels and replacing said receive-weighted coded data symbols in said receive-weighted spatial-subspace data with detected coded data symbols; and, (2) processing receive-weighted spatial-subspace data on remaining coded spatial-subspace channels in a similar fashion.
 5. The communication system of claim 4, wherein said at least two coded spatial-subspace channels comprise pairs of coded spatial-subspace channels which are processed in order of decreasing signal to noise plus interference ratio.
 6. The communication system of claim 1, wherein said plurality of spatial-subspace channels comprise said at least two coded spatial-subspace channels and said at least one uncoded spatial-subspace channel and said data estimation unit is adapted to perform an iterative decoding/detection method on the receive-weighted spatial-subspace data for providing said estimated output data, with one iteration of said decoding/detection method comprising: (1) decoding and detecting receive-weighted coded data symbols transmitted on at least a portion of said at least two coded spatial-subspace channels and replacing said receive-weighted coded data symbols in said receive-weighted spatial-subspace data with detected coded data symbols; and, (2) estimating and detecting uncoded data symbols transmitted on said at least one uncoded spatial-subspace channel.
 7. The communication system of claim 6, wherein said at least two coded spatial-subspace channels comprise pairs of coded spatial-subspace channels which are processed in step (1) in order of decreasing signal to noise plus interference ratio, and said at least one uncoded spatial-subspace channel is processed in step (2) in order of decreasing signal to noise plus interference ratio.
 8. The communication system of claim 1, wherein said data estimation unit comprises a de-mapper unit that utilizes one of: 1) a hard-decision method on detected data for providing output data bits as said estimated output data, and 2) a soft-decision method on detected data for providing output data symbols with associated confidence levels as said estimated output data.
 9. The communication system of claim 1, wherein said transmitter further comprises a first data mapper unit for mapping an input data bit stream to said input data symbol stream according to a modulation scheme having a constellation, and a subspace allocation unit for converting said input data symbol stream into said plurality of input data symbol sub-streams for allocation over said plurality of spatial-subspace channels, said first data mapper being connected to said subspace allocation unit, wherein said subspace allocation unit and said first data mapper unit operate in unison for implementing a multi-resolution modulation scheme wherein input data symbols which are further apart from one another in said constellation are allocated to one of said plurality of input data symbol sub-streams associated with one of said plurality of spatial-subspace channels having a low signal-to-noise-plus-interference ratio with respect to said plurality of spatial-subspace channels.
 10. The communication system of claim 9, wherein input data symbols which are closer to one another in said constellation are allocated to one of said plurality of input data symbol sub-streams associated with one of said plurality of spatial-subspace channels having a high signal-to-noise-plus-interference ratio with respect to said plurality of spatial-subspace channels.
 11. A method for transmitting an input data symbol stream over a plurality of spatial-subspace channels of a sub-carrier between a transmitter and a receiver, wherein at the transmitter the method comprises: a) processing a plurality of input data symbol sub-streams for providing a plurality of uncoded/coded input data symbol sub-streams comprising at least one of: 1) at least one uncoded input data symbol sub-stream for allocation on a corresponding at least one uncoded spatial-subspace channel of said plurality of spatial-subspace channels and 2) at least two coded input data symbol sub-streams for allocation on a corresponding at least two coded spatial-subspace channels of said plurality of spatial-subspace channels, said plurality of input data symbol sub-streams being derived from said input data symbol stream; b) weighting said plurality of uncoded/coded input data symbol sub-streams with a transmit weight matrix corresponding to said sub-carrier for distributing said plurality of uncoded/coded input data symbol sub-streams along said plurality of spatial-subspace channels and providing transmit-weighted spatial-subspace data; wherein, at the receiver the method further comprises: c) receiving spatial-subspace data related to said transmit-weighted spatial-subspace data and weighting said spatial-subspace data with a receive weight matrix for providing receive-weighted spatial-subspace data; and, d) performing an iterative processing method on said receive-weighted spatial-subspace data to estimate output data related to said input data symbol stream, said iterative processing method comprising successively processing data on each of said plurality of spatial-subspace channels in said receive-weighted spatial-subspace data.
 12. The method of claim 11, wherein said plurality of spatial-subspace channels comprise only uncoded spatial-subspace channels and step (d) comprises performing a successive interference cancellation method for providing said estimated output data by detecting receive-weighted data symbols on one of said uncoded spatial-subspace channels, subtracting detected receive-weighted data symbols from the receive-weighted spatial-subspace data and iteratively processing receive-weighted spatial-subspace data on remaining uncoded spatial-subspace channels in a similar fashion.
 13. The method of claim 12, wherein step (d) further comprises processing the uncoded spatial-subspace channels in order of decreasing signal to noise plus interference ratio.
 14. The method of claim 11, wherein said plurality of spatial-subspace channels comprise only said at least two coded spatial-subspace channels and step (d) comprises performing an iterative decoding/detection method on the receive-weighted spatial-subspace data for providing said estimated output data, with one iteration of said decoding/detection method comprising: (1) decoding and detecting receive-weighted coded data symbols transmitted on at least a portion of said at least two spatial-subspace channels and replacing said receive-weighted coded data symbols in said receive-weighted spatial-subspace data with detected coded data symbols; and, (2) processing receive-weighted spatial-subspace data on remaining coded spatial-subspace channels in a similar fashion.
 15. The method of claim 14, wherein said at least two coded spatial-subspace channels comprise pairs of coded spatial-subspace channels and step (d) further comprises processing said pairs of coded spatial-subspace channels in order of decreasing signal to noise plus interference ratio.
 16. The method of claim 11, wherein said plurality of spatial-subspace channels comprise said at least two coded spatial-subspace channels and said at least one uncoded spatial-subspace channel and step (d) comprises performing an iterative decoding/detection method on the receive-weighted spatial-subspace data for providing said estimated output data, with one iteration of said decoding/detection method comprising: (1) decoding and detecting receive-weighted coded data symbols transmitted on at least a portion of said at least two coded spatial-subspace channels and replacing said receive-weighted coded data symbols in said receive-weighted spatial-subspace data with detected coded data symbols; and, (2) estimating and detecting uncoded data symbols transmitted on said at least one uncoded spatial-subspace channel.
 17. The method of claim 16, wherein said at least two coded spatial-subspace channels comprise pairs of coded spatial-subspace channels and step (d) further comprises processing said pairs of coded spatial-subspace channels in step (1) in order of decreasing signal to noise plus interference ratio, and processing said at least one uncoded spatial-subspace channel in step (2) in order of decreasing signal to noise plus interference ratio.
 18. The method of claim 11, wherein step (d) further comprises applying one of: 1) a hard-decision method on detected data for providing output data bits as said estimated output data, and 2) a soft-decision method on detected data for providing output data symbols with associated confidence levels as said estimated output data.
 19. The method of claim 11, wherein said method further comprises mapping an input data bit stream to said input data symbol stream according to a modulation scheme having a constellation and converting said input data symbol stream into said plurality of input data symbol sub-streams for allocation over said plurality of spatial-subspace channels, wherein said converting and said mapping is done in unison for implementing a multi-resolution modulation scheme wherein input data symbols which are further apart from one another in said constellation are allocated to one of said plurality of input data symbol sub-streams associated with one of said plurality of spatial-subspace channels having a low signal-to-noise-plus-interference ratio with respect to said plurality of spatial-subspace channels.
 20. The method of claim 19, wherein input data symbols which are closer to one another in said constellation are allocated to one of said plurality of input data symbol sub-streams associated with one of said plurality of spatial-subspace channels having a high signal-to-noise-plus-interference ratio with respect to said plurality of spatial-subspace channels.
 21. A receiver for receiving spatial-subspace data transmitted over a plurality of spatial-subspace channels of a sub-carrier, said spatial-subspace data comprising a plurality of uncoded/coded data symbol sub-streams comprising at least one of: 1) at least one uncoded input data symbol sub-stream for allocation on a corresponding at least one uncoded spatial-subspace channel of said plurality of spatial-subspace channels and 2) at least two coded input data symbol sub-streams for allocation on a corresponding at least two coded spatial-subspace channels of said plurality of spatial-subspace channels, wherein said receiver comprises: a) a receiver weighting unit for weighting said spatial-subspace data with a receive weight matrix for providing receive-weighted spatial-subspace data; and, b) a data estimation unit connected to said receiver weighting unit for receiving and performing an iterative processing method on said receive-weighted spatial-subspace data to estimate output data related to said input data symbol stream, said iterative processing method comprising successively processing data on each of said plurality of spatial-subspace channels in said receive-weighted spatial-subspace data.
 22. The receiver of claim 21, wherein said plurality of spatial-subspace channels comprise only uncoded spatial-subspace channels and said data estimation unit is adapted to perform a successive interference cancellation method for providing said estimated output data by detecting receive-weighted data symbols on one of said uncoded spatial-subspace channels, subtracting detected receive-weighted data symbols from the receive-weighted spatial-subspace data and iteratively processing receive-weighted spatial-subspace data on remaining uncoded spatial-subspace channels in a similar fashion.
 23. The receiver of claim 21, wherein said plurality of spatial-subspace channels comprise only said at least two coded spatial-subspace channels and said data estimation unit is adapted to perform an iterative decoding/detection method on the receive-weighted spatial-subspace data for providing said estimated output data, with one iteration of said decoding/detection method comprising: (1) decoding and detecting receive-weighted coded data symbols transmitted on at least a portion said at least two coded spatial-subspace channels and replacing said receive-weighted coded data symbols in said receive-weighted spatial-subspace data with detected coded data symbols; and, (2) processing receive-weighted spatial-subspace data on remaining coded spatial-subspace channels in a similar fashion.
 24. The receiver of claim 21, wherein said plurality of spatial-subspace channels comprise said at least two coded spatial-subspace channels and said at least one uncoded spatial-subspace channel and said data estimation unit is adapted to perform an iterative decoding/detection method on the receive-weighted spatial-subspace data for providing said estimated output data, with one iteration of said decoding/detection method comprising: (1) decoding and detecting receive-weighted coded data symbols transmitted on at least a portion of said at least two coded spatial-subspace channels and replacing said receive-weighted coded data symbols in said receive-weighted spatial-subspace data with detected coded data symbols; and, (2) estimating and detecting uncoded data symbols transmitted on said at least one uncoded spatial-subspace channel.
 25. The receiver of claim 21, wherein said data estimation unit comprises a de-mapper unit that utilizes one of: 1) a hard-decision method on detected data for providing output data bits as said estimated output data, and 2) a soft-decision method on detected data for providing output data symbols with associated confidence levels as said estimated output data.
 26. A method for receiving spatial-subspace data transmitted over a plurality of spatial-subspace channels of a sub-carrier, said spatial-subspace data comprising a plurality of uncoded/coded data symbol sub-streams comprising at least one of: 1) at least one uncoded input data symbol sub-stream for allocation on a corresponding at least one uncoded spatial-subspace channel of said plurality of spatial-subspace channels and 2) at least two coded input data symbol sub-streams for allocation on a corresponding at least two coded spatial-subspace channels of said plurality of spatial-subspace channels, wherein said method comprises: a) weighting said spatial-subspace data with a receive weight matrix for providing receive-weighted spatial-subspace data; and, b) performing an iterative processing method on said receive-weighted spatial-subspace data to estimate output data related to said input data symbol stream, said iterative processing method comprising successively processing data on each of said plurality of spatial-subspace channels in said receive-weighted spatial-subspace data.
 27. The method of claim 26, wherein said plurality of spatial-subspace channels comprise only uncoded spatial-subspace channels and step (b) comprises performing a successive interference cancellation method for providing said estimated output data by detecting receive-weighted data symbols on one of said uncoded spatial-subspace channels, subtracting detected receive-weighted data symbols from the receive-weighted spatial-subspace data and iteratively processing receive-weighted spatial-subspace data on remaining uncoded spatial-subspace channels in a similar fashion.
 28. The method of claim 26, wherein said plurality of spatial-subspace channels comprise only said at least two coded spatial-subspace channels and step (b) comprises performing an iterative decoding/detection method on the receive-weighted spatial-subspace data for providing said estimated output data, with one iteration of said decoding/detection method comprising: (1) decoding and detecting receive-weighted coded data symbols transmitted on at least a portion of said at least two spatial-subspace channels and replacing said receive-weighted coded data symbols in said receive-weighted spatial-subspace data with detected coded data symbols; and, (2) processing receive-weighted spatial-subspace data on remaining coded spatial-subspace channels in a similar fashion.
 29. The method of claim 26, wherein said plurality of spatial-subspace channels comprise said at least two coded spatial-subspace channels and said at least one uncoded spatial-subspace channel and step (b) comprises performing an iterative decoding/detection method on the receive-weighted spatial-subspace data for providing said estimated output data, with one iteration of said decoding/detection method comprising: (1) decoding and detecting receive-weighted coded data symbols transmitted on at least a portion of said at least two coded spatial-subspace channels and replacing said receive-weighted coded data symbols in said receive-weighted spatial-subspace data with detected coded data symbols; and, (2) estimating and detecting uncoded data symbols transmitted on said at least one uncoded spatial-subspace channel.
 30. The method of claim 26, wherein step (d) further comprises applying one of: 1) a hard-decision method on detected data for providing output data bits as said estimated output data, and 2) a soft-decision method on detected data for providing output data symbols with associated confidence levels as said estimated output data.
 31. A communication system for transmitting input data over a plurality of spatial-subspace channels of a sub-carrier between a transmitter and a receiver, wherein said transmitter comprises: a) an encoder unit for processing a plurality of input data symbol sub-streams for providing a plurality of uncoded/coded input data symbol sub-streams comprising at least one of: 1) at least one uncoded input data symbol sub-stream for allocation on a corresponding at least one uncoded spatial-subspace channel of said plurality of spatial-subspace channels and 2) at least two coded input data symbol sub-streams for allocation on a corresponding at least two coded spatial-subspace channels of said plurality of spatial-subspace channels, said transmitter transmitting data related to said plurality of uncoded/coded input data symbol sub-streams; and, wherein, said receiver comprises: b) a data estimation unit for performing an iterative processing method on received spatial-subspace data to estimate output data related to said input data, said iterative processing method comprising successively processing data on each of said plurality of spatial-subspace channels in said received spatial-subspace data.
 32. The communication system of claim 31, wherein said plurality of spatial-subspace channels comprise only uncoded spatial-subspace channels and said data estimation unit is adapted to perform a successive interference cancellation method for providing said estimated output data by detecting received data symbols on one of said uncoded spatial-subspace channels, subtracting detected received data symbols from the received spatial-subspace data and iteratively processing received spatial-subspace data on remaining uncoded spatial-subspace channels in a similar fashion.
 33. The communication system of claim 31, wherein said plurality of spatial-subspace channels comprise only said at least two coded spatial-subspace channels and said data estimation unit is adapted to perform an iterative decoding/detection method on the received spatial-subspace data for providing said estimated output data, with one iteration of said decoding/detection method comprising: (1) decoding and detecting received coded data symbols transmitted on at least a portion of said at least two coded spatial-subspace channels and replacing said received coded data symbols in said received spatial-subspace data with detected coded data symbols; and, (2) processing received spatial-subspace data on remaining coded spatial-subspace channels in a similar fashion.
 34. The communication system of claim 31, wherein said plurality of spatial-subspace channels comprise said at least two coded spatial-subspace channels and said at least one uncoded spatial-subspace channel and said data estimation unit is adapted to perform an iterative decoding/detection method on the received spatial-subspace data for providing said estimated output data, with one iteration of said decoding/detection method comprising: (1) decoding and detecting received coded data symbols transmitted on at least a portion of said at least two coded spatial-subspace channels and replacing said received coded data symbols in said received spatial-subspace data with detected coded data symbols; and, (2) estimating and detecting uncoded data symbols transmitted on said at least one uncoded spatial-subspace channel.
 35. The communication system of claim 31, wherein said transmitter further comprises a first data mapper unit for mapping an input data bit stream to an input data symbol stream according to a modulation scheme having a constellation, and a subspace allocation unit for converting said input data symbol stream into said plurality of input data symbol sub-streams for allocation over said plurality of spatial-subspace channels, said first data mapper being connected to said subspace allocation unit, wherein said subspace allocation unit and said first data mapper unit operate in unison for implementing a multi-resolution modulation scheme wherein input data symbols which are further apart from one another in said constellation are allocated to one of said plurality of input data symbol sub-streams associated with one of said plurality of spatial-subspace channels having a low signal-to-noise-plus-interference ratio with respect to said plurality of spatial-subspace channels.
 36. The communication system of claim 35, wherein input data symbols which are closer to one another in said constellation are allocated to one of said plurality of input data symbol sub-streams associated with one of said plurality of spatial-subspace channels having a high signal-to-noise-plus-interference ratio with respect to said plurality of spatial-subspace channels.
 37. A method for transmitting input data over a plurality of spatial-subspace channels of a sub-carrier between a transmitter and a receiver, wherein at the transmitter the method comprises: a) processing a plurality of input data symbol sub-streams for providing a plurality of uncoded/coded input data symbol sub-streams comprising at least one of: 1) at least one uncoded input data symbol sub-stream for allocation on a corresponding at least one uncoded spatial-subspace channel of said plurality of spatial-subspace channels and 2) at least two coded input data symbol sub-streams for allocation on a corresponding at least two coded spatial-subspace channels of said plurality of spatial-subspace channels, and transmitting data related to said plurality of uncoded/coded input data symbol sub-streams; and, wherein, at the receiver the method further comprises: b) performing an iterative processing method on received spatial-subspace data to estimate output data related to said input data, said iterative processing method comprising successively processing data on each of said plurality of spatial-subspace channels in said received spatial-subspace data.
 38. The method of claim 37, wherein said plurality of spatial-subspace channels comprise only uncoded spatial-subspace channels and step (b) comprises performing a successive interference cancellation method for providing said estimated output data by detecting received data symbols on one of said uncoded spatial-subspace channels, subtracting detected received data symbols from the received spatial-subspace data and iteratively processing received spatial-subspace data on remaining uncoded spatial-subspace channels in a similar fashion.
 39. The method of claim 37, wherein said plurality of spatial-subspace channels comprise only said at least two coded spatial-subspace channels and step (b) comprises performing an iterative decoding/detection method on the received spatial-subspace data for providing said estimated output data, with one iteration of said decoding/detection method comprising: (1) decoding and detecting received coded data symbols transmitted on at least a portion of said at least two spatial-subspace channels and replacing said received coded data symbols in said received spatial-subspace data with detected coded data symbols; and, (2) processing received spatial-subspace data on remaining coded spatial-subspace channels in a similar fashion.
 40. The method of claim 37, wherein said plurality of spatial-subspace channels comprise said at least two coded spatial-subspace channels and said at least one uncoded spatial-subspace channel and step (b) comprises performing an iterative decoding/detection method on the received spatial-subspace data for providing said estimated output data, with one iteration of said decoding/detection method comprising: (1) decoding and detecting received coded data symbols transmitted on at least a portion of said at least two coded spatial-subspace channels and replacing said received coded data symbols in said received spatial-subspace data with detected coded data symbols; and, (2) estimating and detecting uncoded data symbols transmitted on said at least one uncoded spatial-subspace channel.
 41. The method of claim 37, wherein said method further comprises mapping an input data bit stream to an input data symbol stream according to a modulation scheme having a constellation and converting said input data symbol stream into said plurality of input data symbol sub-streams for allocation over said plurality of spatial-subspace channels, wherein said converting and said mapping is done in unison for implementing a multi-resolution modulation scheme wherein input data symbols which are further apart from one another in said constellation are allocated to one of said plurality of input data symbol sub-streams associated with one of said plurality of spatial-subspace channels having a low signal-to-noise-plus-interference ratio with respect to said plurality of spatial-subspace channels.
 42. The method of claim 41, wherein input data symbols which are closer to one another in said constellation are allocated to one of said plurality of input data symbol sub-streams associated with one of said plurality of spatial-subspace channels having a high signal-to-noise-plus-interference ratio with respect to said plurality of spatial-subspace channels. 